typedserver/ts_web_serviceworker/classes.backend.ts
2024-05-11 12:51:20 +02:00

53 lines
1.4 KiB
TypeScript

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<interfaces.serviceworker.IRequest_PurgeServiceWorkerCache['response']>;
}) {
// 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<interfaces.serviceworker.IRequest_Client_Serviceworker_ConnectionPolling>('broadcastConnectionPolling', async reqArg => {
return {
serviceworkerId: '123'
};
})
this.deesComms.createTypedHandler<interfaces.serviceworker.IRequest_PurgeServiceWorkerCache>('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) {
}
}