self.addEventListener('fetch', (event) => { const params = new URL(event.request.url).searchParams; if (params.has('ignore')) { return; } if (!params.has('name')) { event.respondWith(Promise.reject(TypeError('No name is provided.'))); return; } event.respondWith(Promise.resolve().then(async () => { const name = params.get('name'); await caches.delete('foo'); const cache = await caches.open('foo'); await cache.put(event.request, new Response('hello')); const keys = await cache.keys(); const original = event.request[name]; const stored = keys[0][name]; return new Response(`original: ${original}, stored: ${stored}`); })); });