dom-event-emit
v1.1.0
Published
A type-safe, flexible DOM event emitter for browser environments. It has the same event API as DOM elements.
Maintainers
Readme
dom-event-emit
A type-safe, flexible DOM event emitter for browser environments. It has the same event API as DOM elements.
适用于浏览器环境的 DOM 事件触发器,拥有和DOM元素相同的事件API。
Installation
npm
npm install dom-event-emitbrowser
https://cdn.jsdelivr.net/npm/dom-event-emit/dist/index.min.jsQuick Start
import DomEmitter from 'dom-event-emit'
// Define your event types
interface MyEvents {
'user:login': { userId: string; timestamp: number }
'user:logout': void
}
// Create an instance
const events = new DomEmitter<MyEvents>()
// Add event listener
events.on('user:login', (event) => {
console.log(`User logged in: ${event.detail.userId}`)
})
// Emit event
events.emit('user:login', { userId: '123', timestamp: Date.now() })API
Constructor
constructor(target?: HTMLElement)Creates a new DomEmitter instance.
target(optional): HTMLElement to attach events to. If not provided, creates a virtual element.
Methods
addEventListener / on
addEventListener<K extends keyof T>(
type: K,
listener: EventListener,
options?: boolean | AddEventListenerOptions
): thisAdds an event listener.
type: Event typelistener: Event handler functionoptions: DOM event options (optional)
removeEventListener / off
removeEventListener<K extends keyof T>(
type: K,
listener: CustomEventListener,
options?: boolean | EventListenerOptions
): thisRemoves an event listener.
once
once<K extends keyof T>(
type: K,
listener: CustomEventListener,
options?: boolean | EventListenerOptions
): thisAdds a one-time event listener.
dispatchEvent
dispatchEvent<K extends keyof T>(event: Event, data?: Partial<T[K]>): booleanDispatches a raw DOM event.
emit
emit<K extends keyof T>(
type: K,
detail?: any,
data?: Partial<T[K]>
): booleantype: Event typedetail: Event detail datadata: Additional event data (optional)
Emits an event with optional data.
🚨 It also trigger events bind by assigning
on + typeto the instance.
has
has(type: string, includeOn = false): booleanChecks if an event type has any listeners.
size
size(type: string, includeOn = false): numberGets the number of listeners for an event type.
clear
clear(type?: string): voidClears all listeners for a specific event type or all events.
destroy
destroy(): voidDestroys the instance and removes all listeners.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
