Skip to content

lspeasy / core/src / DisposableEventEmitter

Class: DisposableEventEmitter<TEvents>

Defined in: packages/core/src/utils/disposable-event-emitter.ts:17

Event emitter that returns disposables and can dispose all listeners at once.

Extended by

Type Parameters

Type Parameter
TEvents extends Record<string, unknown[]>

Constructors

Constructor

ts
new DisposableEventEmitter<TEvents>(): DisposableEventEmitter<TEvents>;

Returns

DisposableEventEmitter<TEvents>

Methods

dispose()

ts
dispose(): void;

Defined in: packages/core/src/utils/disposable-event-emitter.ts:114

Dispose all listeners and prevent further registrations.

Returns

void


emit()

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

Defined in: packages/core/src/utils/disposable-event-emitter.ts:96

Emit an event to all registered listeners in registration order.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterTypeDescription
eventKThe event name to emit.
...argsTEvents[K]Arguments forwarded to each listener in the order they match TEvents[K].

Returns

void


on()

ts
on<K>(event, listener): Disposable;

Defined in: packages/core/src/utils/disposable-event-emitter.ts:28

Register a listener and receive a disposable to unregister it.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterTypeDescription
eventKThe event name to subscribe to.
listenerListener<TEvents, K>Callback invoked each time event is emitted.

Returns

Disposable

A Disposable — call dispose() to remove the listener.


once()

ts
once<K>(event, listener): Disposable;

Defined in: packages/core/src/utils/disposable-event-emitter.ts:62

Register a one-time listener that automatically unregisters after first emission.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterTypeDescription
eventKThe event name to subscribe to.
listenerListener<TEvents, K>Callback invoked once the next time event is emitted.

Returns

Disposable

A Disposable — call dispose() to cancel before the event fires.

Released under the MIT License.