infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
33 lines • 1.1 kB
JavaScript
import { InfobipRTCEvent } from "../event/InfobipRTCEvents";
import { CallsApiEvent } from "../call/event/CallsApiEvents";
const EventEmitter = require('events');
const TRACKED_EVENTS = [
InfobipRTCEvent.CONNECTED,
InfobipRTCEvent.DISCONNECTED,
InfobipRTCEvent.INCOMING_WEBRTC_CALL,
InfobipRTCEvent.INCOMING_APPLICATION_CALL,
CallsApiEvent.ESTABLISHED,
CallsApiEvent.HANGUP
];
export class ApiEventEmitter extends EventEmitter {
constructor(logger) {
super();
this.logger = logger;
}
emit(event, ...args) {
try {
if (TRACKED_EVENTS.includes(String(event)) && !this.hasListeners(event)) {
this.logger.warn(`No listeners for ${String(event)} event.`);
}
return super.emit(event, ...args);
}
catch (error) {
this.logger.error(`An error has occurred while emitting ${String(event)} event:`, error);
return false;
}
}
hasListeners(event) {
return this.listenerCount(event) > 0;
}
}
//# sourceMappingURL=ApiEventEmitter.js.map