UNPKG

mediasoup-client

Version:

mediasoup client side TypeScript library

83 lines (82 loc) 2.42 kB
"use strict"; /* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(exports, "__esModule", { value: true }); exports.EnhancedEventEmitter = void 0; const events_alias_1 = require("events-alias"); const Logger_1 = require("./Logger"); const enhancedEventEmitterLogger = new Logger_1.Logger('EnhancedEventEmitter'); class EnhancedEventEmitter extends events_alias_1.EventEmitter { constructor() { super(); this.setMaxListeners(Infinity); } /** * Empties all stored event listeners. */ close() { super.removeAllListeners(); } emit(eventName, ...args) { return super.emit(eventName, ...args); } /** * Special addition to the EventEmitter API. */ safeEmit(eventName, ...args) { try { return super.emit(eventName, ...args); } catch (error) { enhancedEventEmitterLogger.error('safeEmit() | event listener threw an error [eventName:%s]:%o', eventName, error); try { super.emit('listenererror', eventName, error); } catch (error2) { // Ignore it. } return Boolean(super.listenerCount(eventName)); } } on(eventName, listener) { super.on(eventName, listener); return this; } off(eventName, listener) { super.off(eventName, listener); return this; } addListener(eventName, listener) { super.on(eventName, listener); return this; } prependListener(eventName, listener) { super.prependListener(eventName, listener); return this; } once(eventName, listener) { super.once(eventName, listener); return this; } prependOnceListener(eventName, listener) { super.prependOnceListener(eventName, listener); return this; } removeListener(eventName, listener) { super.off(eventName, listener); return this; } removeAllListeners(eventName) { super.removeAllListeners(eventName); return this; } listenerCount(eventName) { return super.listenerCount(eventName); } listeners(eventName) { return super.listeners(eventName); } rawListeners(eventName) { return super.rawListeners(eventName); } } exports.EnhancedEventEmitter = EnhancedEventEmitter;