EventEmitter
Defined in: packages/core/src/utils/event-emitter.ts:45
Type-safe event emitter with strongly-typed event names and payloads
Remarks
Section titled “Remarks”This class provides a type-safe event emitter pattern where event names and their payload types are strictly enforced. It’s designed to be extended by classes that need event emission capabilities.
Example
Section titled “Example”interface MyEvents { connect: void; message: { text: string }; error: { error: Error };}
class MyEmitter extends EventEmitter<MyEvents> { connect() { this.emit('connect', undefined); }
sendMessage(text: string) { this.emit('message', { text }); }}
const emitter = new MyEmitter();emitter.on('message', (data) => { console.log(data.text); // Strongly typed!});Extended by
Section titled “Extended by”Type Parameters
Section titled “Type Parameters”| Type Parameter | Description |
|---|---|
Events extends Record<string, unknown> | Record of event names to payload types |
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new EventEmitter<
Events>():EventEmitter<Events>
Returns
Section titled “Returns”EventEmitter<Events>
Methods
Section titled “Methods”eventNames()
Section titled “eventNames()”eventNames(): keyof
Events[]
Defined in: packages/core/src/utils/event-emitter.ts:211
Get all event names that have registered handlers
Returns
Section titled “Returns”keyof Events[]
Array of event names
Example
Section titled “Example”const events = emitter.eventNames();console.log('Events with handlers:', events);hasListeners()
Section titled “hasListeners()”hasListeners<
K>(event):boolean
Defined in: packages/core/src/utils/event-emitter.ts:228
Check if an event has any registered handlers
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
Returns
Section titled “Returns”boolean
True if the event has at least one handler
Example
Section titled “Example”if (emitter.hasListeners('message')) { emitter.emit('message', { text: 'Hello' });}listenerCount()
Section titled “listenerCount()”listenerCount<
K>(event):number
Defined in: packages/core/src/utils/event-emitter.ts:195
Get the number of handlers registered for an event
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
Returns
Section titled “Returns”number
Number of registered handlers
Example
Section titled “Example”const count = emitter.listenerCount('message');console.log(`${count} handlers registered`);off<
K>(event,handler):void
Defined in: packages/core/src/utils/event-emitter.ts:120
Remove an event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
handler | EventHandler<Events[K]> | Handler function to remove |
Returns
Section titled “Returns”void
Example
Section titled “Example”const handler = (data) => console.log(data);emitter.on('message', handler);emitter.off('message', handler);on<
K>(event,handler): () =>void
Defined in: packages/core/src/utils/event-emitter.ts:65
Register an event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name to listen for |
handler | EventHandler<Events[K]> | Callback function to invoke when event is emitted |
Returns
Section titled “Returns”Unsubscribe function that removes this specific handler
() => void
Example
Section titled “Example”const unsubscribe = emitter.on('message', (data) => { console.log(data.text);});
// Later, to unsubscribe:unsubscribe();once()
Section titled “once()”once<
K>(event,handler):void
Defined in: packages/core/src/utils/event-emitter.ts:95
Register a one-time event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name to listen for |
handler | EventHandler<Events[K]> | Callback function to invoke once |
Returns
Section titled “Returns”void
Remarks
Section titled “Remarks”The handler will be automatically removed after being invoked once.
Example
Section titled “Example”emitter.once('connect', () => { console.log('Connected!');});removeAllListeners()
Section titled “removeAllListeners()”removeAllListeners<
K>(event?):void
Defined in: packages/core/src/utils/event-emitter.ts:175
Remove all handlers for an event, or all handlers for all events
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event? | K | Optional event name. If omitted, removes all handlers for all events. |
Returns
Section titled “Returns”void
Example
Section titled “Example”// Remove all handlers for 'message' eventemitter.removeAllListeners('message');
// Remove all handlers for all eventsemitter.removeAllListeners();