theatre-events
Version:
A full implementation of a standard event dispatcher for javascript
27 lines (26 loc) • 804 B
TypeScript
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;