FunctioncreateEventBusChannel

  • Creates a new Event Bus Channel. Allows subscribing, unsubscribing, and emitting events with type safety.

    Type Parameters

    • E extends EventMap

      The EventMap defining all possible events and their handlers.

    Parameters

    • Optionalconfig: EventBusConfig<E>

      Optional configuration for the Event Bus.

    Returns EventBusChannel<E>

    An object implementing the EventBusChannel interface.

    interface MyEvents {
    userLoggedIn: (user: User) => void;
    dataFetched: (data: Data) => void;
    }

    const eventBus = createEventBusChannel<MyEvents>({
    onError: (error, eventKey, payload) => {
    console.error(`Error in event ${String(eventKey)}:`, error, payload);
    },
    });

    const unsubscribe = eventBus.on('userLoggedIn', (user) => {
    console.log('User logged in:', user);
    });

    eventBus.emit('userLoggedIn', currentUser);
    unsubscribe();