typedserver/ts_web_serviceworker/classes.networkmanager.ts
2024-05-25 01:24:02 +02:00

34 lines
921 B
TypeScript

import * as plugins from './plugins.js';
import { ServiceWorker } from './classes.serviceworker.js';
export class NetworkManager {
public serviceWorkerRef: ServiceWorker;
public webRequest: plugins.webrequest.WebRequest;
public previousState: string;
constructor(serviceWorkerRefArg: ServiceWorker) {
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()}`);
}
}