@observertc/observer-js
Version:
Server Side NodeJS Library for processing ObserveRTC Samples
38 lines (37 loc) • 1.26 kB
JavaScript
"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;