21 lines
715 B
JavaScript
21 lines
715 B
JavaScript
import {getOneShotSyncPromise, getPeriodicSyncPromise} from './background-sync-helper.js';
|
|
|
|
self.addEventListener('install', e => e.waitUntil(skipWaiting()));
|
|
self.addEventListener('activate', e => e.waitUntil(clients.claim()));
|
|
|
|
self.addEventListener('message', async e => {
|
|
const {method, isPeriodic} = e.data;
|
|
const promise = isPeriodic ?
|
|
getPeriodicSyncPromise(self.registration, method) :
|
|
getOneShotSyncPromise(self.registration, method);
|
|
const message =
|
|
await promise
|
|
.then(() => {
|
|
return `[background synnc ${method}] Unexpectedly started`;
|
|
})
|
|
.catch((e) => {
|
|
return e.message;
|
|
});
|
|
|
|
e.source.postMessage(message);
|
|
});
|