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
TypeScript
/**
* 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)[]>;
}