Interface EventBusConfig<TEvents>

Interface de configuração para o EventBus.

const config: EventBusConfig<'login' | 'logout'> = {
allowedEvents: ['login', 'logout'],
validateEvents: true,
onError: (error, eventName) => console.error(`Error in ${eventName}:`, error),
enableMetrics: true
};
interface EventBusConfig<TEvents extends string = string> {
    allowedEvents?: readonly TEvents[];
    enableMetrics?: boolean;
    logger?: {
        error: (message: string, ...args: any[]) => void;
        warn: (message: string, ...args: any[]) => void;
    };
    onError?: (error: Error, eventName: TEvents) => void;
    validateEvents?: boolean;
}

Type Parameters

  • TEvents extends string = string

    União de strings literais representando os eventos permitidos

Properties

allowedEvents?: readonly TEvents[]

Lista de eventos permitidos. Se definido, apenas estes eventos podem ser usados em subscribe() e publish().

undefined (todos os eventos são permitidos)
enableMetrics?: boolean

Se true, coleta métricas de uso do EventBus. Zero overhead quando false.

false
logger?: {
    error: (message: string, ...args: any[]) => void;
    warn: (message: string, ...args: any[]) => void;
}

Logger customizado para mensagens internas do EventBus. Se não fornecido, usa console.

onError?: (error: Error, eventName: TEvents) => void

Handler customizado para erros que ocorrem em callbacks. Se não fornecido, usa logger.error ou console.error.

Type declaration

    • (error: Error, eventName: TEvents): void
    • Parameters

      • error: Error

        O erro capturado

      • eventName: TEvents

        Nome do evento onde o erro ocorreu

      Returns void

validateEvents?: boolean

Se true, valida eventos contra allowedEvents em runtime. Lança erro se evento não permitido for usado.

false