@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
1 lines • 698 B
JavaScript
import{createLogger as t}from"../utils/logger";const a="StatsAdapter";export class StatsAdapters{logger;adapters=new Map;constructor(a=t()){this.logger=a}add(t){if(this.adapters.has(t.name))return this.logger.warn(`[${a}]:`,"Adapter with name already exists",t.name);this.adapters.set(t.name,t)}remove(t){return"string"==typeof t?this.adapters.delete(t):this.adapters.delete(t.name)}adapt(t){let r=t;for(const t of this.adapters.values())try{r=t.adapt(r)}catch(t){this.logger.warn(`[${a}]:`,"Error adapting stats",t)}return r}postAdapt(t){let r=t;for(const t of this.adapters.values())if(t.postAdapt)try{r=t.postAdapt(r)}catch(t){this.logger.warn(`[${a}]:`,"Error post adapting stats",t)}return r}}