UNPKG

@drift-labs/common

Version:

Common functions for Drift

55 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StrictEventEmitter = void 0; class StrictEventEmitter { constructor() { this.listeners = {}; } on(event, listener) { if (!this.listeners[event]) { this.listeners[event] = []; } this.listeners[event].push(listener); } off(event, listener) { const eventListeners = this.listeners[event]; if (!eventListeners) return; const index = eventListeners.indexOf(listener); if (index > -1) { eventListeners.splice(index, 1); } if (eventListeners.length === 0) { delete this.listeners[event]; } } once(event, listener) { const onceWrapper = (params) => { listener(params); this.off(event, onceWrapper); }; this.on(event, onceWrapper); } emit(event, params) { const eventListeners = this.listeners[event]; if (!eventListeners) return; eventListeners.forEach((listener) => { listener(params); }); } removeAllListeners(event) { if (event) { delete this.listeners[event]; } else { this.listeners = {}; } } listenerCount(event) { const eventListeners = this.listeners[event]; return eventListeners ? eventListeners.length : 0; } } exports.StrictEventEmitter = StrictEventEmitter; //# sourceMappingURL=StrictEventEmitter.js.map