diff options
fixed feed aria and fixed cache issues
Signed-off-by: Marc Pervaz Boocha <mboocha@sudomsg.xyz>
-rw-r--r-- | src/assets/sw.mjs | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/assets/sw.mjs b/src/assets/sw.mjs index e20102a..48ead74 100644 --- a/src/assets/sw.mjs +++ b/src/assets/sw.mjs @@ -1,24 +1,32 @@ -const get_cache_info = async() => { - const response = await fetch('/cache.json') - return response.json() +const sw_cache = { + offline: "/offline.html", + default: [ + "/index.css", + "/prism.css", + "/index.js", + "/favicon.svg", + "/offline.html", + "/" + ], + // eslint-disable-next-line no-undef + store: VERSION, } self.addEventListener('install', async event => { + self.skipWaiting() const precache = async() => { - const ver = await get_cache_info() - const cache = await self.caches.open(ver.store); - return cache.addAll(ver.default) + const cache = await self.caches.open(sw_cache.store); + return cache.addAll(sw_cache.default) } event.waitUntil(precache()) }) self.addEventListener('activate', async event => { const invalidatecache = async() => { - const ver = await get_cache_info() const keys = await self.caches.keys() Promise.all( keys.map(key => { - if (key !== ver.store) { + if (key !== sw_cache.store) { return self.caches.delete(key) } })) @@ -28,21 +36,25 @@ self.addEventListener('activate', async event => { self.addEventListener('fetch', async event => { const cache_fetch = async() => { - const ver = await get_cache_info() if (event.request.method != 'GET') { return } + + if (event.request.url.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(ver.store) + const cache = await self.caches.open(sw_cache.store) cache.put(event.request, response.clone()) return response } catch { - return self.caches.match(ver.offline) + return self.caches.match(sw_cache.offline) } } |