recoder-code
Version:
🚀 AI-powered development platform - Chat with 32+ models, build projects, automate workflows. Free models included!
93 lines (67 loc) • 2.49 kB
TypeScript
interface EventMap {
[event: string | symbol]: unknown[]
}
interface EventHandler<in A extends unknown[] = unknown[], out R = unknown> {
(...args: A): R
}
declare class EventEmitterError extends Error {
static OPERATION_ABORTED(cause: Error, msg?: string): EventEmitterError
static UNHANDLED_ERROR(cause: Error, msg?: string): EventEmitterError
}
interface EventEmitter<in out M extends EventMap = EventMap> {
addListener<E extends keyof M, R>(name: E, fn: EventHandler<M[E], R>): this
addOnceListener<E extends keyof M, R>(
name: E,
fn: EventHandler<M[E], R>
): this
prependListener<E extends keyof M, R>(
name: E,
fn: EventHandler<M[E], R>
): this
prependOnceListener<E extends keyof M, R>(
name: E,
fn: EventHandler<M[E], R>
): this
removeListener<E extends keyof M, R>(name: E, fn: EventHandler<M[E], R>): this
removeAllListeners<E extends keyof M>(name?: E): this
on<E extends keyof M, R>(name: E, fn: EventHandler<M[E], R>): this
once<E extends keyof M, R>(name: E, fn: EventHandler<M[E], R>): this
off<E extends keyof M, R>(name: E, fn: EventHandler<M[E], R>): this
emit<E extends keyof M>(name: E, ...args: M[E]): boolean
listeners<E extends keyof M, R>(name: E): EventHandler<M[E], R>
listenerCount<E extends keyof M>(name: E): number
getMaxListeners(): number
setMaxListeners(n: number): void
}
declare class EventEmitter<in out M extends EventMap = EventMap> {}
declare namespace EventEmitter {
export function on<M extends EventMap, E extends keyof M>(
emitter: EventEmitter<M>,
name: E,
opts?: { signal?: AbortSignal }
): AsyncIterableIterator<M[E]>
export function once<M extends EventMap, E extends keyof M>(
emitter: EventEmitter<M>,
name: E,
opts?: { signal?: AbortSignal }
): Promise<M[E]>
export function forward<
F extends EventMap,
E extends keyof F,
T extends Pick<F, E>
>(
from: EventEmitter<F>,
to: EventEmitter<T>,
names: E | E[],
opts?: { emit?: (name: E, ...args: T[E]) => void }
): void
export function listenerCount<M extends EventMap, E extends keyof M>(
emitter: EventEmitter<M>,
name: E
): number
export function getMaxListeners(emitter: EventEmitter): number
export function setMaxListeners(n: number, ...emitters: EventEmitter[]): void
export let defaultMaxListeners: number
export { EventEmitter, EventEmitterError as errors, EventMap, EventHandler }
}
export = EventEmitter