Prelude API
    Preparing search index...

    Class Emitter<T>

    Typed event emitter similar to EventEmitter from Node.js standard library. Provides type-safe event handling with generics.

    Type Parameters

    Implements

    Index
    _listeners: Map<keyof T, Set<Listener>> = ...

    Internal map storing event listeners by event name.

    • Triggers an event, calling all registered listeners with the provided value. Errors in listeners are caught and logged without interrupting other listeners. Listeners are snapshotted first (like Node's EventEmitter): a listener added during the emit runs from the next emit, so a once handler that re-registers itself cannot re-fire within the same emit.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        The event name to emit

      • ...values: T[K]

        The payload to pass to listeners

      Returns void

    • Lists all event names with active listeners.

      Returns (keyof T)[]

      Array of event names

    • Creates a promise that resolves when the specified event is emitted.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        Event name to wait for

      • options: number | WaitOptions = ...

        Timeout in milliseconds, or { timeout, signal }; aborting the signal removes the listener and timer and rejects with signal.reason

      Returns Promise<T[K]>

      Promise that resolves with the event payload when emitted

    • Creates a promise that resolves when an event matching the predicate is emitted.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        Event name to wait for

      • predicate: Predicate<T[K]>

        Function that evaluates if the event payload should resolve the promise

      • options: number | WaitOptions = ...

        Timeout in milliseconds, or { timeout, signal }; aborting the signal removes the listener and timer and rejects with signal.reason

      Returns Promise<T[K]>

      Promise that resolves with the event payload when predicate matches

    • Checks if an event has any listeners registered.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • Optionalname: K

        Optional event name to check

      • Optionallistener: Listener<T[K]>

        Optional listener to check

      Returns boolean

      true if the event has listener(s), false otherwise.

    • Gets all listeners for a given event name.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        The event name to get listeners for

      Returns Set<Listener<T[K]>> | undefined

      Set of listeners or undefined if none exist

    • Removes one or more event listeners.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • OptionalmaybeName: K

        Optional event name. If not provided, removes all listeners for all events.

      • OptionalmaybeListener: Listener<T[K]>

        Optional listener to remove. If not provided but name is, removes all listeners for that event.

      Returns number

      Number of listeners removed

    • Registers a new event listener.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        Event name to listen for

      • listener: Listener<T[K]>

        Function to call when event is emitted

      Returns () => number

      Unregister function that removes this listener when called

      Error if the listener is already registered for this event

    • Registers a listener that will be called exactly once when the event is emitted.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        Event name to listen for

      • listener: Listener<T[K]>

        Function to call when event is emitted

      Returns () => number

      Unregister function to remove the listener before it's triggered

    • Registers a listener that will be called once when an event matching the predicate is emitted.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • name: K

        Event name to listen for

      • predicate: Predicate<T[K]>

        Function that evaluates if the event payload should trigger the listener

      • listener: Listener<T[K]>

        Function to call when an event passes the predicate

      Returns () => number

      Unregister function to remove the listener before it's triggered