UNPKG

rjweb-server

Version:

Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS

23 lines (22 loc) 782 B
/** * A Minimal Event Emitter used for requests * @example * ``` * const emitter = new MiniEventEmitter(...) * ``` * @since 7.7.0 */ export default class MiniEventEmitter<Events extends Record<string, (...args: any) => any>> { protected listeners: Record<keyof Events, Function[]>; /** * Listen for an Event * @since 7.7.0 */ listen<Event extends keyof Events>(event: Event, callback: Events[Event]): this; /** * Remove a listener * @since 7.7.0 */ unlist<Event extends keyof Events>(event: Event, callback: Events[Event]): this; /** * Send (Emit) an Event * @since 7.7.0 */ send<Event extends keyof Events>(event: Event, ...args: Parameters<Events[Event]>): Promise<(Awaited<ReturnType<Events[Event]>> | Error)[]>; }