@playlive/realtime-pipeline
    Preparing search index...

    Class Emitter<Events>

    Generic typed event emitter. The Events type parameter is a map from event name to the callback signature; this lets consumers get full IntelliSense for both on() and emit().

    type MyEvents = { open: () => void; message: (raw: string) => void };
    const e = new Emitter<MyEvents>();
    e.on("open", () => console.log("opened"));
    e.emit("open");

    Type Parameters

    • Events extends { [K in keyof Events]: (...args: any[]) => void }
    Index
    • Type Parameters

      • Events extends { [K in string | number | symbol]: (...args: any[]) => void }

      Returns Emitter<Events>

    • Synchronously invoke every listener registered for event. Errors thrown by individual listeners are swallowed and routed back into the "error" channel (if any) so one bad listener can't take down the rest of the chain.

      Type Parameters

      • E extends string | number | symbol

      Parameters

      • event: E

        Event name to emit.

      • ...args: Parameters<Events[E]>

        Arguments forwarded to every listener.

      Returns void

    • Remove a previously-registered listener.

      Type Parameters

      • E extends string | number | symbol

      Parameters

      • event: E

        Event name.

      • cb: Events[E]

        The exact callback reference originally passed to on.

      Returns void

    • Register a listener for an event. Returns an unsubscribe function for convenient teardown in useEffect / onMount hooks.

      Type Parameters

      • E extends string | number | symbol

      Parameters

      • event: E

        Event name.

      • cb: Events[E]

        Listener callback.

      Returns () => void

      Function that removes the listener.