data-channel-router
Version:
Data channel router
43 lines (42 loc) • 1.14 kB
TypeScript
export type TEventHandler = (...args: Array<any>) => void;
/**
* Simple event emitter
* @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/utils/EventEmitter.ts
* @author Evgenii Grebennikov
* @email djonnyx@gmail.com
*/
export declare class EventEmitter<E = string, H = TEventHandler> {
protected _listeners: {
[eventName: string]: Array<TEventHandler>;
};
protected _disposed: boolean;
constructor();
/**
* Emits the event
*/
dispatch(event: E, ...args: Array<any>): void;
/**
* Emits the event async
*/
dispatchAsync(event: E, ...args: Array<any>): void;
/**
* Returns true if the event listener is already subscribed.
*/
hasEventListener(eventName: E, handler: H): boolean;
/**
* Add event listener
*/
addEventListener(eventName: E, handler: H): void;
/**
* Remove event listener
*/
removeEventListener(eventName: E, handler: H): void;
/**
* Remove all listeners
*/
removeAllListeners(): void;
/**
* Method of destroying handlers
*/
dispose(): void;
}