Skip to main content

EventBus

Defined in: src/hooks/event-bus.ts:25

Central event bus for transport lifecycle notifications.

Dispatches events to user-provided hooks. Events without a registered hook are silently ignored — no default logging.

Example

const bus = new EventBus(logger, {
[TransportEvent.Error]: (err) => sentry.captureException(err),
});

bus.emit(TransportEvent.Error, new Error('timeout'), 'rpc-router');
// → calls sentry

bus.emit(TransportEvent.Connect, 'nats://localhost:4222');
// → no-op (no hook registered)

Constructors

Constructor

new EventBus(logger, hooks?): EventBus

Defined in: src/hooks/event-bus.ts:29

Parameters

logger

Logger

hooks?

Partial<TransportHooks>

Returns

EventBus

Methods

emit()

emit<K>(event, ...args): void

Defined in: src/hooks/event-bus.ts:40

Emit a lifecycle event. Dispatches to custom hook if registered, otherwise no-op.

Type Parameters

K

K extends keyof TransportHooks

Parameters

event

K

The TransportEvent to emit.

args

...Parameters<TransportHooks[K]>

Arguments matching the hook signature for this event.

Returns

void


emitMessageRouted()

emitMessageRouted(subject, kind): void

Defined in: src/hooks/event-bus.ts:55

Hot-path optimized emit for MessageRouted events. Avoids rest/spread overhead of the generic emit().

Parameters

subject

string

kind

MessageKind

Returns

void