fallout-utility
Version:
<h1 align="center"> fallout-utility <br> </h1>
38 lines (37 loc) • 2.42 kB
TypeScript
/// <reference types="node" />
import EventEmitter from 'node:events';
export interface EventEmitterOptions {
/**
* Enables automatic capturing of promise rejection.
*/
captureRejections?: boolean | undefined;
}
export interface TypedEmitter<Events extends Record<string | symbol, any> = Record<string | symbol, any>> extends EventEmitter {
listenerCount(eventName: keyof Events): number;
listenerCount(eventName: string | symbol): number;
listeners(eventName: keyof Events): Function[];
listeners(eventName: string | symbol): Function[];
rawListeners(eventName: keyof Events): Function[];
rawListeners(eventName: string | symbol): Function[];
removeAllListeners(event?: keyof Events): this;
removeAllListeners(event?: string | symbol): this;
off<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
off<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
on<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
on<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
once<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
once<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
addListener<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
addListener<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
emit<K extends keyof Events>(eventName: K, ...args: Events[K]): boolean;
emit<K extends string | symbol>(eventName: K, ...args: any): boolean;
prependListener<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
prependListener<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
prependOnceListener<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
prependOnceListener<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
removeListener<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
removeListener<K extends string | symbol>(event: K, listener: (...args: any) => void): this;
}
export declare class TypedEmitter<Events extends Record<string | symbol, any>> extends EventEmitter {
constructor(options?: EventEmitterOptions);
}