import * as plugins from './plugins.js'; import * as interfaces from '../dist_ts_interfaces/index.js'; /** * This class is meant to be used only on the backend side */ export class ServiceworkerBackend { public deesComms = new plugins.deesComms.DeesComms(); constructor(optionsArg: { self: any; purgeCache: (reqArg: interfaces.serviceworker.IRequest_PurgeServiceWorkerCache['request']) => Promise; }) { // lets handle wakestuff optionsArg.self.addEventListener('message', (event) => { if (event.data && event.data.type === 'wakeUpCall') { console.log('sw-backend: got wake up call'); } }); this.deesComms.createTypedHandler('broadcastConnectionPolling', async reqArg => { return { serviceworkerId: '123' }; }) this.deesComms.createTypedHandler('purgeServiceWorkerCache', async reqArg => { console.log(`Executing purge cache in serviceworker backend.`) return await optionsArg.purgeCache?.(reqArg); }); } /** * reloads all clients */ public async triggerReloadAll() { } /** * display notification */ public async addNotification(notificationArg: { title: string; body: string; }) { } public async alert(alertText: string) { } }