mediasoup-client
Version:
mediasoup client side TypeScript library
83 lines (82 loc) • 2.42 kB
JavaScript
;
/* 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;