UNPKG

theatre-events

Version:

A full implementation of a standard event dispatcher for javascript

27 lines (26 loc) 804 B
import { EventTarget } from './event-dispatcher'; import EventListener from './event-listener'; /** * Define the behavior of a standard event emitter. Has you may noticed, it's * the same behavior as an event dispatcher. But for code semantic and clarity * it can be usefull. */ interface EventEmitter { /** * Emit an event to all attached listeners */ emit<T>(name: EventTarget, payload?: T): T | Promise<T>; /** * Attach a listener to the emitter */ on(name: EventTarget, listener: EventListener): void; /** * Remove an event listener */ removeEventListener(name: EventTarget, listener: EventListener): void; /** * Clear an event listener stack */ clearEventListeners(name?: EventTarget): void; } export default EventEmitter;