@cartridge-engine/event
    Preparing search index...

    Class EventBus<T>

    A typed event bus for decoupled communication between components.

    Each handler in a given event is wrapped in try/catch so that one failing handler does not prevent the remaining handlers from running.

    interface MyEvents {
    save: { id: number };
    quit: void;
    }
    const bus = new EventBus<MyEvents>();
    bus.on('save', ({ id }) => console.log(id));
    bus.emit('save', { id: 1 });

    Type Parameters

    • T extends EventMap

      Event map type mapping event names to their payload types.

    Index
    • Remove all listeners for every event.

      Returns void

    • Remove all listeners for a single event type.

      Type Parameters

      • K extends string

      Parameters

      • event: K

        The event name to clear.

      Returns void

    • Emit an event with a payload.

      Each registered listener is called inside its own try/catch so that an error in one handler does not prevent other handlers from running. Errors are logged to console.error with an [ink-cartridge] prefix.

      Type Parameters

      • K extends string

      Parameters

      • event: K

        The event name to emit.

      • payload: T[K]

        The payload to pass to each listener.

      Returns void

    • Unsubscribe from an event.

      If no listener is provided, all listeners for the event are removed.

      Type Parameters

      • K extends string

      Parameters

      • event: K

        The event name.

      • Optionallistener: Listener<T[K]>

        Optional specific listener to remove.

      Returns void

    • Subscribe to an event. Returns an unsubscribe function.

      Type Parameters

      • K extends string

      Parameters

      • event: K

        The event name to subscribe to.

      • listener: Listener<T[K]>

        The callback to invoke when the event is emitted.

      Returns Unsubscribe

      A function that unsubscribes this listener when called.

    • Get the number of subscribers for an event. Useful for debugging and testing.

      Type Parameters

      • K extends string

      Parameters

      • event: K

        The event name.

      Returns number

      The number of registered listeners.