diff options
fixed sw.js
Signed-off-by: Marc Pervaz Boocha <mboocha@sudomsg.xyz>
-rw-r--r-- | src/assets/sw.mjs | 62 |
1 files changed, 27 insertions, 35 deletions
diff --git a/src/assets/sw.mjs b/src/assets/sw.mjs index 48ead74..97d44bf 100644 --- a/src/assets/sw.mjs +++ b/src/assets/sw.mjs @@ -14,49 +14,41 @@ const sw_cache = { self.addEventListener('install', async event => { self.skipWaiting() - const precache = async() => { - const cache = await self.caches.open(sw_cache.store); - return cache.addAll(sw_cache.default) - } - event.waitUntil(precache()) + const cache = await self.caches.open(sw_cache.store); + event.waitUntil(cache.addAll(sw_cache.default)) }) self.addEventListener('activate', async event => { - const invalidatecache = async() => { - const keys = await self.caches.keys() - Promise.all( - keys.map(key => { - if (key !== sw_cache.store) { - return self.caches.delete(key) - } - })) - } - event.waitUntil(invalidatecache()) + 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('fetch', async event => { - const cache_fetch = async() => { - if (event.request.method != 'GET') { - return - } + if (event.request.method != 'GET') { + return + } - if (event.request.url.origin != self.location.origin) { - return - } + const a = new URL(event.request.url) + if (a.origin != self.location.origin) { + return + } - const cacheres = await self.caches.match(event.request) - if (cacheres !== undefined) { - return cacheres - } - 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) - } + 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(cache_fetch()) })
\ No newline at end of file |