@urban-toolkit/autk-core / EventEmitter
Class: EventEmitter<Events>
Defined in: event-emitter.ts:39
Type-safe event emitter keyed by an event record.
Each event name maps to a specific payload type, and listeners are stored per event key. Listener removal requires the original function reference.
Example
type MapEvents = { pick: { selection: number[]; layerId: string } };
const emitter = new EventEmitter<MapEvents>();
emitter.on('pick', ({ selection, layerId }) => console.log(selection, layerId));
emitter.emit('pick', { selection: [1, 2], layerId: 'buildings' });Type Parameters
Events
Events extends Record<string, unknown>
Record mapping event names to their payload types.
Constructors
Constructor
new EventEmitter<
Events>():EventEmitter<Events>
Returns
EventEmitter<Events>
Methods
emit()
emit<
K>(event,payload):void
Defined in: event-emitter.ts:87
Dispatches an event payload to all registered listeners synchronously.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
Event name to dispatch.
payload
Events[K]
Payload passed to each listener.
Returns
void
Throws
Never throws. Listener errors propagate to the caller.
Example
emitter.emit('pick', { selection: [1, 2], layerId: 'buildings' });off()
off<
K>(event,listener):void
Defined in: event-emitter.ts:71
Removes a previously registered listener by reference.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
Event name to unsubscribe from.
listener
EventListener<Events[K]>
Exact listener reference to remove.
Returns
void
Throws
Never throws.
Example
const handler = (e) => console.log(e);
emitter.on('pick', handler);
emitter.off('pick', handler);on()
on<
K>(event,listener):void
Defined in: event-emitter.ts:53
Registers a listener for the given event.
Multiple registrations of the same callback are allowed and treated as separate entries.
Type Parameters
K
K extends string | number | symbol
Parameters
event
K
Event name to subscribe to.
listener
EventListener<Events[K]>
Callback invoked when the event fires.
Returns
void
Throws
Never throws.
Example
emitter.on('pick', ({ selection, layerId }) => console.log(selection));