Prelude API
    Preparing search index...

    Interface t<T>

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

    interface t<T extends Events> {
        emit<K extends string | number | symbol>(name: K, ...values: T[K]): void;
        eventNames(): (keyof T)[];
        eventually<K extends string | number | symbol>(
            name: K,
            options?: number | WaitOptions,
        ): Promise<T[K]>;
        eventuallyIf<K extends string | number | symbol>(
            name: K,
            predicate: Predicate<T[K]>,
            options?: number | WaitOptions,
        ): Promise<T[K]>;
        hasListener(name?: keyof T, listener?: Listener<T[keyof T]>): boolean;
        listeners<K extends string | number | symbol>(
            name: K,
        ): Set<Listener<T[K]>> | undefined;
        off<K extends string | number | symbol>(
            name?: K,
            listener?: Listener<T[K]>,
        ): number;
        on<K extends string | number | symbol>(
            name: K,
            listener: Listener<T[K]>,
        ): () => number;
        once<K extends string | number | symbol>(
            name: K,
            listener: Listener<T[K]>,
        ): () => void;
        onceIf<K extends string | number | symbol>(
            name: K,
            predicate: Predicate<T[K]>,
            listener: Listener<T[K]>,
        ): () => void;
    }

    Type Parameters

    Implemented by

    Index
    • Triggers an event, calling all registered listeners with the provided value.

      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 that have registered listeners

    • 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

      • Optionaloptions: number | WaitOptions

        Maximum time to wait in milliseconds (default: 60 seconds), or { timeout, signal }

      Returns Promise<T[K]>

      Promise that resolves with the event payload when emitted

      Error with code 'timeout' if event is not emitted within the timeout period; signal.reason when aborted

    • 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

      • Optionaloptions: number | WaitOptions

        Maximum time to wait in milliseconds (default: 60 seconds), or { timeout, signal }

      Returns Promise<T[K]>

      Promise that resolves with the event payload when predicate matches

      Error with code 'timeout' if matching event is not emitted within the timeout period; signal.reason when aborted

    • Checks if an event has any listeners registered.

      Parameters

      • Optionalname: keyof T

        Optional event name to check

      • Optionallistener: Listener<T[keyof T]>

        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

      • Optionalname: K

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

      • Optionallistener: 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

      • If listener is provided: unregisters it if it exists, or no-op if it doesn't
      • If listener is not provided but name is: unregisters all listeners for that event
      • If name is not provided: unregisters all listeners for all events
      • removeListener event is emitted for every listener that is removed
      • After removal, if no listeners remain for an event, the event is removed from eventNames
    • 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 () => void

      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 () => void

      Unregister function to remove the listener before it's triggered