mediasoup-client
Version:
mediasoup client side TypeScript library
76 lines (75 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EnhancedEventEmitter = void 0;
const npm_events_package_1 = require("npm-events-package");
const Logger_1 = require("./Logger");
const enhancedEventEmitterLogger = new Logger_1.Logger('EnhancedEventEmitter');
class EnhancedEventEmitter extends npm_events_package_1.EventEmitter {
constructor() {
super();
this.setMaxListeners(Infinity);
}
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;