| 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); |
| }); |