import * as plugins from './plugins.js'; import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js'; export class NetworkManager { public serviceWorkerRef: LosslessServiceWorker; public webRequest: plugins.webrequest.WebRequest; public previousState: string; constructor(serviceWorkerRefArg: LosslessServiceWorker) { this.serviceWorkerRef = serviceWorkerRefArg; this.webRequest = new plugins.webrequest.WebRequest(); this.getConnection()?.addEventListener('change', () => { this.updateConnectionStatus(); }); } /** * gets the connection */ public getConnection() { const navigatorLocal: any = self.navigator; return navigatorLocal?.connection; } public getEffectiveType() { return this.getConnection()?.effectiveType || '4g'; } public updateConnectionStatus() { console.log(`Connection type changed from ${this.previousState} to ${this.getEffectiveType()}`); } }