@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
1 lines • 503 B
JavaScript
export class Processor{middlewares=[];_finalCallback=null;addMiddleware(e){this.middlewares.push(e)}removeMiddleware(e){const l=this.middlewares.indexOf(e);l<0||this.middlewares.splice(l,1)}process(e){return this._next(0,e)}addFinalCallback(e){if(null!==this._finalCallback)throw new Error("Final callback already exists");this._finalCallback=e}_next(e,l){if(this.middlewares.length<=e)return this._finalCallback?.(l);const a=this.middlewares[e];return a?a(l,(()=>this._next(e+1,l))):this._next(e+1,l)}}