From 3d303f93b32499d445cf8987c2f20fd3079a18be Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Sun, 9 Jan 2022 15:09:04 +0530 Subject: fixed sw.js Signed-off-by: Marc Pervaz Boocha --- src/assets/sw.mjs | 57 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/assets/sw.mjs b/src/assets/sw.mjs index 97d44bf..2359e0f 100644 --- a/src/assets/sw.mjs +++ b/src/assets/sw.mjs @@ -12,43 +12,48 @@ const sw_cache = { store: VERSION, } -self.addEventListener('install', async event => { +self.addEventListener('install', event => { self.skipWaiting() - const cache = await self.caches.open(sw_cache.store); - event.waitUntil(cache.addAll(sw_cache.default)) + event.waitUntil((async() => { + const cache = await self.caches.open(sw_cache.store) + cache.addAll(sw_cache.default) + })()) }) -self.addEventListener('activate', async event => { - const keys = await self.caches.keys() - - event.waitUntil(Promise.all(keys.map(key => { - if (key !== sw_cache.store) { - return self.caches.delete(key) - } - }))) +self.addEventListener('activate', event => { + event.waitUntil((async() => { + const keys = await self.caches.keys() + Promise.all(keys.map(key => { + if (key !== sw_cache.store) { + return self.caches.delete(key) + } + })) + })()) }) -self.addEventListener('fetch', async event => { +self.addEventListener('fetch', event => { if (event.request.method != 'GET') { return } - const a = new URL(event.request.url) - if (a.origin != self.location.origin) { + const req_url = new URL(event.request.url) + if (req_url.origin != self.location.origin) { return } - const cacheres = await self.caches.match(event.request) - if (cacheres !== undefined) { - event.respondWith(cacheres) - } - try { - const response = await self.fetch(event.request) - const cache = await self.caches.open(sw_cache.store) - cache.put(event.request, response.clone()) - event.respondWith(response) - } catch { - event.respondWith(self.caches.match(sw_cache.offline)) - } + event.respondWith((async() => { + const cacheres = await self.caches.match(event.request) + return cacheres || (async() => { + try { + const response = await self.fetch(event.request) + const cache = await self.caches.open(sw_cache.store) + cache.put(event.request, response.clone()) + return response + } catch { + return self.caches.match(sw_cache.offline) + } + })() + })()) + }) \ No newline at end of file -- cgit v1.2.3-70-g09d2