From a24c2f6f8e17be577861961914e22ad5baf495c1 Mon Sep 17 00:00:00 2001 From: Erik Onarheim Date: Fri, 29 Nov 2024 09:06:04 -0600 Subject: [PATCH] docs: Update js doc on EventEmitter --- src/engine/EventEmitter.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/engine/EventEmitter.ts b/src/engine/EventEmitter.ts index 23ef2353a..8ea42562d 100644 --- a/src/engine/EventEmitter.ts +++ b/src/engine/EventEmitter.ts @@ -6,6 +6,9 @@ export type Handler = (event: EventType) => void; * Interface that represents a handle to a subscription that can be closed */ export interface Subscription { + /** + * Removes the associated event handler, synonymous with events.off(...); + */ close(): void; } @@ -19,6 +22,9 @@ export class EventEmitter { private _listenersOnce: Record[]> = {}; private _pipes: EventEmitter[] = []; + /** + * Removes all listeners and pipes + */ clear() { this._listeners = {}; this._listenersOnce = {}; @@ -90,6 +96,10 @@ export class EventEmitter { } } + /** + * Replay events from this emitter to another + * @param emitter + */ pipe(emitter: EventEmitter): Subscription { if (this === emitter) { throw Error('Cannot pipe to self'); @@ -106,6 +116,10 @@ export class EventEmitter { }; } + /** + * Remove any piped emitters + * @param emitter + */ unpipe(emitter: EventEmitter): void { const i = this._pipes.indexOf(emitter); if (i > -1) { @@ -113,10 +127,16 @@ export class EventEmitter { } } + /** + * Paused event emitters do not emit events + */ pause(): void { this._paused = true; } + /** + * Unpaused event emitter do emit events + */ unpause(): void { this._paused = false; }