infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
24 lines • 855 B
JavaScript
export class ManagedEventEmitter {
constructor(eventEmitter) {
this.eventEmitter = eventEmitter;
this.eventSubscriptions = [];
}
on(eventName, listener) {
this.eventEmitter.on(eventName, listener);
this.eventSubscriptions.push({ eventName, listener });
return this;
}
once(eventName, listener) {
this.eventEmitter.once(eventName, listener);
this.eventSubscriptions.push({ eventName, listener });
return this;
}
emit(eventName, ...args) {
return this.eventEmitter.emit(eventName, ...args);
}
releaseSubscriptions() {
this.eventSubscriptions.forEach(subscription => this.eventEmitter.removeListener(subscription.eventName, subscription.listener));
this.eventSubscriptions = [];
}
}
//# sourceMappingURL=ManagedEventEmitter.js.map