UNPKG

@observertc/observer-js

Version:

Server Side NodeJS Library for processing ObserveRTC Samples

38 lines (37 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OnAnyCallObserverUpdater = void 0; class OnAnyCallObserverUpdater { observver; name = 'OnAnyCallObserverUpdater'; description = 'Call Observer\'s update() method on any of the ObservedCall is updated'; closed = false; constructor(observver) { this.observver = observver; this._onNewObservedCall = this._onNewObservedCall.bind(this); this.observver.once('close', () => { this.observver.off('newcall', this._onNewObservedCall); }); this.observver.on('newcall', this._onNewObservedCall); } close() { if (this.closed) return; this.closed = true; // do nothing, because we unsubscribe once close is emitted from observer } _onNewObservedCall(observedCall) { if (this.closed) return; const onUpdate = () => { if (this.closed) return; this.observver.update(); }; observedCall.once('close', () => { observedCall.off('update', onUpdate); }); observedCall.on('update', onUpdate); } } exports.OnAnyCallObserverUpdater = OnAnyCallObserverUpdater;