UNPKG

theatre-events

Version:

A full implementation of a standard event dispatcher for javascript

32 lines (31 loc) 1.1 kB
import EventListener from './event-listener'; /** * This is a type used to defined an event name. Event name is a subject * dispatched by the event dispatcher. */ declare type EventTarget = string | symbol; /** * A standard event dispatcher interface wich define the behavior of an event dispatcher */ interface EventDispatcher { /** * Dispatch an event. It can be synchronous or asynchronous depending * on the implementation of the event dispatcher. */ dispatch<T>(eventName: EventTarget, payload?: T): T | Promise<T>; /** * Add a new event listener to the target eventName */ addEventListener(eventName: EventTarget, listener: EventListener): void; /** * Remove an event listener from a target eventName */ removeEventListener(eventName: EventTarget, listener: EventListener): void; /** * Clear all event listeners from a target or clear the entire listener * stack if no event name is provided. */ clearEventListeners(eventName?: EventTarget): void; } export { EventTarget }; export default EventDispatcher;