53 lines
1.4 KiB
TypeScript
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) {
|
||
|
|
||
|
}
|
||
|
}
|