Skip to content
Classevent-emitterv0.1.8

TypedEventEmitter

Typed, cross-runtime event emitter with per-event tuple payloads.

class TypedEventEmitter<TEvents extends EventMap<TEvents>>

Member visibility

Filter class members by access level.

TEvents

Map of event names to readonly tuple payloads.

TEvents extends EventMap<TEvents>

emit()

Emits an event, invoking each listener with the payload tuple. Returns true when the event had listeners.

public emit<TEventKey>(
    event: TEventKey,
    args: TEvents[TEventKey]
): boolean

eventNames()

Returns the event names with at least one listener.

public eventNames(): EventKey<TEvents>[]

listenerCount()

Counts the listeners registered for an event.

public listenerCount<TEventKey>(event: TEventKey): number

off()

Removes a previously registered listener.

public off<TEventKey>(
    event: TEventKey,
    listener: (...args: TEvents[TEventKey]) => void
): this

on()

Registers a persistent listener for an event.

public on<TEventKey>(
    event: TEventKey,
    listener: (...args: TEvents[TEventKey]) => void
): this

once()

Registers a listener removed after its first invocation.

public once<TEventKey>(
    event: TEventKey,
    listener: (...args: TEvents[TEventKey]) => void
): this

removeAllListeners()

Removes every listener for an event, or for all events when no event is given.

public removeAllListeners(
    event?: EventKey<TEvents>
): this

removeListener()

Alias of off.

public removeListener<TEventKey>(
    event: TEventKey,
    listener: (...args: TEvents[TEventKey]) => void
): this

waitFor()

Waits for the next emission of an event, resolving with its payload tuple. With a filter, resolves on the first payload the filter accepts.

public async waitFor<TEventKey>(
    event: TEventKey,
    options?: WaitForOptions<TEvents[TEventKey]>
): Promise<TEvents[TEventKey]>
Parameter: event

The event to wait for.

Parameter: options

An optional filter, abort signal, and timeout.