badging-sw.js (688B)
1 self.addEventListener('install', e => e.waitUntil(skipWaiting())); 2 self.addEventListener('activate', e => e.waitUntil(clients.claim())); 3 4 self.addEventListener('message', async e => { 5 const method = e.data; 6 7 let promise; 8 if (method === 'setAppBadge') { 9 promise = self.navigator.setAppBadge(1); 10 } else if (method === 'clearAppBadge') { 11 promise = self.navigator.clearAppBadge(); 12 } else { 13 promise = Promise.resolve(); 14 } 15 16 const error = await promise 17 .then(() => { 18 return `[Badging API ${method}] Unexpectedly started`; 19 }) 20 .catch((e) => e); 21 22 e.source.postMessage(error); 23 });