| var activatePromiseResolve; |
| |
| addEventListener('activate', function(evt) { |
| evt.waitUntil(new Promise(function(resolve) { |
| activatePromiseResolve = resolve; |
| })); |
| }); |
| |
| addEventListener('message', async function(evt) { |
| switch (evt.data) { |
| case 'CLAIM': |
| evt.waitUntil(new Promise(async resolve => { |
| await clients.claim(); |
| evt.source.postMessage('CLAIMED'); |
| resolve(); |
| })); |
| break; |
| case 'ACTIVATE': |
| if (typeof activatePromiseResolve !== 'function') { |
| throw new Error('Not activating!'); |
| } |
| activatePromiseResolve(); |
| break; |
| default: |
| throw new Error('Unknown message!'); |
| } |
| }); |
| |
| addEventListener('fetch', function(evt) { |
| evt.respondWith(new Response('Hello world')); |
| }); |