UNPKG

p2p-media-loader-core

Version:
50 lines 1.44 kB
export class EventTarget { constructor() { Object.defineProperty(this, "events", { enumerable: true, configurable: true, writable: true, value: new Map() }); } dispatchEvent(eventName, ...args) { const listeners = this.events.get(eventName); if (!listeners) return; for (const listener of listeners) { listener(...args); } } getEventDispatcher(eventName) { let listeners = this.events.get(eventName); if (!listeners) { listeners = []; this.events.set(eventName, listeners); } const definedListeners = listeners; return (...args) => { for (const listener of definedListeners) { listener(...args); } }; } addEventListener(eventName, listener) { const listeners = this.events.get(eventName); if (!listeners) { this.events.set(eventName, [listener]); } else { listeners.push(listener); } } removeEventListener(eventName, listener) { const listeners = this.events.get(eventName); if (listeners) { const index = listeners.indexOf(listener); if (index !== -1) { listeners.splice(index, 1); } } } } //# sourceMappingURL=event-target.js.map