157 lines
5.2 KiB
TypeScript
157 lines
5.2 KiB
TypeScript
|
export type event = (symbol|string);
|
||
|
export type eventNS = string|event[];
|
||
|
|
||
|
export interface ConstructorOptions {
|
||
|
/**
|
||
|
* @default false
|
||
|
* @description set this to `true` to use wildcards.
|
||
|
*/
|
||
|
wildcard?: boolean,
|
||
|
/**
|
||
|
* @default '.'
|
||
|
* @description the delimiter used to segment namespaces.
|
||
|
*/
|
||
|
delimiter?: string,
|
||
|
/**
|
||
|
* @default false
|
||
|
* @description set this to `true` if you want to emit the newListener events.
|
||
|
*/
|
||
|
newListener?: boolean,
|
||
|
/**
|
||
|
* @default false
|
||
|
* @description set this to `true` if you want to emit the removeListener events.
|
||
|
*/
|
||
|
removeListener?: boolean,
|
||
|
/**
|
||
|
* @default 10
|
||
|
* @description the maximum amount of listeners that can be assigned to an event.
|
||
|
*/
|
||
|
maxListeners?: number
|
||
|
/**
|
||
|
* @default false
|
||
|
* @description show event name in memory leak message when more than maximum amount of listeners is assigned, default false
|
||
|
*/
|
||
|
verboseMemoryLeak?: boolean
|
||
|
/**
|
||
|
* @default false
|
||
|
* @description disable throwing uncaughtException if an error event is emitted and it has no listeners
|
||
|
*/
|
||
|
ignoreErrors?: boolean
|
||
|
}
|
||
|
export interface ListenerFn {
|
||
|
(...values: any[]): void;
|
||
|
}
|
||
|
export interface EventAndListener {
|
||
|
(event: string | string[], ...values: any[]): void;
|
||
|
}
|
||
|
|
||
|
export interface WaitForFilter { (...values: any[]): boolean }
|
||
|
|
||
|
export interface WaitForOptions {
|
||
|
/**
|
||
|
* @default 0
|
||
|
*/
|
||
|
timeout: number,
|
||
|
/**
|
||
|
* @default null
|
||
|
*/
|
||
|
filter: WaitForFilter,
|
||
|
/**
|
||
|
* @default false
|
||
|
*/
|
||
|
handleError: boolean,
|
||
|
/**
|
||
|
* @default Promise
|
||
|
*/
|
||
|
Promise: Function,
|
||
|
/**
|
||
|
* @default false
|
||
|
*/
|
||
|
overload: boolean
|
||
|
}
|
||
|
|
||
|
export interface CancelablePromise<T> extends Promise<T>{
|
||
|
cancel(reason: string): undefined
|
||
|
}
|
||
|
|
||
|
export interface OnceOptions {
|
||
|
/**
|
||
|
* @default 0
|
||
|
*/
|
||
|
timeout: number,
|
||
|
/**
|
||
|
* @default Promise
|
||
|
*/
|
||
|
Promise: Function,
|
||
|
/**
|
||
|
* @default false
|
||
|
*/
|
||
|
overload: boolean
|
||
|
}
|
||
|
|
||
|
export interface ListenToOptions {
|
||
|
on?: { (event: event | eventNS, handler: ListenerFn): void },
|
||
|
off?: { (event: event | eventNS, handler: ListenerFn): void },
|
||
|
reducers: Function | Object
|
||
|
}
|
||
|
|
||
|
export interface GeneralEventEmitter{
|
||
|
addEventListener(event: event, handler: ListenerFn): this,
|
||
|
removeEventListener(event: event, handler: ListenerFn): this,
|
||
|
addListener?(event: event, handler: ListenerFn): this,
|
||
|
removeListener?(event: event, handler: ListenerFn): this,
|
||
|
on?(event: event, handler: ListenerFn): this,
|
||
|
off?(event: event, handler: ListenerFn): this
|
||
|
}
|
||
|
|
||
|
export interface OnOptions {
|
||
|
async?: boolean,
|
||
|
promisify?: boolean,
|
||
|
nextTick?: boolean,
|
||
|
objectify?: boolean
|
||
|
}
|
||
|
|
||
|
export interface Listener {
|
||
|
emitter: EventEmitter2;
|
||
|
event: event|eventNS;
|
||
|
listener: ListenerFn;
|
||
|
off(): this;
|
||
|
}
|
||
|
|
||
|
export declare class EventEmitter2 {
|
||
|
constructor(options?: ConstructorOptions)
|
||
|
emit(event: event | eventNS, ...values: any[]): boolean;
|
||
|
emitAsync(event: event | eventNS, ...values: any[]): Promise<any[]>;
|
||
|
addListener(event: event | eventNS, listener: ListenerFn): this|Listener;
|
||
|
on(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
|
||
|
prependListener(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
|
||
|
once(event: event | eventNS, listener: ListenerFn, options?: true|OnOptions): this|Listener;
|
||
|
prependOnceListener(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
|
||
|
many(event: event | eventNS, timesToListen: number, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
|
||
|
prependMany(event: event | eventNS, timesToListen: number, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
|
||
|
onAny(listener: EventAndListener): this;
|
||
|
prependAny(listener: EventAndListener): this;
|
||
|
offAny(listener: ListenerFn): this;
|
||
|
removeListener(event: event | eventNS, listener: ListenerFn): this;
|
||
|
off(event: event | eventNS, listener: ListenerFn): this;
|
||
|
removeAllListeners(event?: event | eventNS): this;
|
||
|
setMaxListeners(n: number): void;
|
||
|
getMaxListeners(): number;
|
||
|
eventNames(nsAsArray?: boolean): (event|eventNS)[];
|
||
|
listenerCount(event?: event | eventNS): number
|
||
|
listeners(event?: event | eventNS): ListenerFn[]
|
||
|
listenersAny(): ListenerFn[]
|
||
|
waitFor(event: event | eventNS, timeout?: number): CancelablePromise<any[]>
|
||
|
waitFor(event: event | eventNS, filter?: WaitForFilter): CancelablePromise<any[]>
|
||
|
waitFor(event: event | eventNS, options?: WaitForOptions): CancelablePromise<any[]>
|
||
|
listenTo(target: GeneralEventEmitter, events: event | eventNS, options?: ListenToOptions): this;
|
||
|
listenTo(target: GeneralEventEmitter, events: event[], options?: ListenToOptions): this;
|
||
|
listenTo(target: GeneralEventEmitter, events: Object, options?: ListenToOptions): this;
|
||
|
stopListeningTo(target?: GeneralEventEmitter, event?: event | eventNS): Boolean;
|
||
|
hasListeners(event?: String): Boolean
|
||
|
static once(emitter: EventEmitter2, event: event | eventNS, options?: OnceOptions): CancelablePromise<any[]>;
|
||
|
static defaultMaxListeners: number;
|
||
|
}
|
||
|
|
||
|
export default EventEmitter2;
|