background-sync-sw.js (715B)
1 import {getOneShotSyncPromise, getPeriodicSyncPromise} from './background-sync-helper.js'; 2 3 self.addEventListener('install', e => e.waitUntil(skipWaiting())); 4 self.addEventListener('activate', e => e.waitUntil(clients.claim())); 5 6 self.addEventListener('message', async e => { 7 const {method, isPeriodic} = e.data; 8 const promise = isPeriodic ? 9 getPeriodicSyncPromise(self.registration, method) : 10 getOneShotSyncPromise(self.registration, method); 11 const message = 12 await promise 13 .then(() => { 14 return `[background synnc ${method}] Unexpectedly started`; 15 }) 16 .catch((e) => { 17 return e.message; 18 }); 19 20 e.source.postMessage(message); 21 });