Skip to main content

EventEmitterDelegate

@zylem/game-lib


@zylem/game-lib / events / EventEmitterDelegate

Class: EventEmitterDelegate<TEvents>

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:21

Reusable delegate for event emission and subscription. Use via composition in Game, Stage, and Entity classes.

Example​

class Game {
private eventDelegate = new EventEmitterDelegate<GameEvents>();

dispatch<K extends keyof GameEvents>(event: K, payload: GameEvents[K]) {
this.eventDelegate.dispatch(event, payload);
}
}

Type Parameters​

TEvents​

TEvents extends Record<string, unknown>

Constructors​

Constructor​

new EventEmitterDelegate<TEvents>(): EventEmitterDelegate<TEvents>

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:25

Returns​

EventEmitterDelegate<TEvents>

Methods​

dispatch()​

dispatch<K>(event, payload): void

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:32

Dispatch an event to all listeners.

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

payload​

TEvents[K]

Returns​

void


dispose()​

dispose(): void

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:62

Clean up all subscriptions.

Returns​

void


listen()​

listen<K>(event, handler): () => void

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:39

Subscribe to an event. Returns an unsubscribe function.

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

handler​

(payload) => void

Returns​

() => void


listenAll()​

listenAll(handler): () => void

Defined in: packages/game-lib/src/lib/events/event-emitter-delegate.ts:52

Subscribe to all events.

Parameters​

handler​

(type, payload) => void

Returns​

() => void