UNPKG

infobip-rtc

Version:

Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation

33 lines 1.1 kB
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