From afdf83385ead923f28cb0aa651ba37cdb6cc8cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Thu, 30 Jan 2020 13:43:30 +0100 Subject: [PATCH] Smaller sw --- public/service-worker.js | 65 ++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 40 deletions(-) diff --git a/public/service-worker.js b/public/service-worker.js index dc3e9ed..dec44ec 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -6,50 +6,15 @@ var STATIC_CACHE_URLS = ["/"]; console.log("Nåværende versjon:", version); self.addEventListener("activate", event => { - event.waitUntil( - caches - .keys() - .then(keys => keys.filter(key => key !== CACHE_NAME)) - .then(keys => - Promise.all( - keys.map(key => { - console.log(`Sletter mellom-lager på nøkkel ${key}`); - return caches.delete(key); - }) - ) - ) - ); - event.waitUntil( - caches - .keys() - .then(keys => keys.filter(key => key !== CACHE_NAME_API)) - .then(keys => - Promise.all( - keys.map(key => { - console.log(`Sletter mellom-lager på nøkkel ${key}`); - return caches.delete(key); - }) - ) - ) - ); - - event.waitUntil( - caches.open(CACHE_NAME).then(cache => { - console.log("Legger til cache", cache); - return cache.addAll(STATIC_CACHE_URLS); - }) - ); + event.waitUntil(removeCache(CACHE_NAME)); + event.waitUntil(removeCache(CACHE_NAME_API)); + event.waitUntil(addCache(CACHE_NAME, STATIC_CACHE_URLS)); }); self.addEventListener("install", event => { console.log("Arbeids arbeideren installerer seg."); self.skipWaiting(); - event.waitUntil( - caches.open(CACHE_NAME).then(cache => { - console.log("Legger til cache", cache); - return cache.addAll(STATIC_CACHE_URLS); - }) - ); + event.waitUntil(addCache(CACHE_NAME, STATIC_CACHE_URLS)); }); self.addEventListener("fetch", event => { @@ -75,6 +40,27 @@ self.addEventListener("fetch", event => { } }); +function addCache(cacheKey, cacheUrls) { + return caches.open(cacheKey).then(cache => { + console.log("Legger til cache", cache); + return cache.addAll(cacheUrls); + }); +} + +function removeCache(cacheKey) { + return caches + .keys() + .then(keys => keys.filter(key => key !== cacheKey)) + .then(keys => + Promise.all( + keys.map(key => { + console.log(`Sletter mellom-lager på nøkkel ${key}`); + return caches.delete(key); + }) + ) + ); +} + function staticCache(request, response) { if (response.type === "error" || response.type === "opaque") { return Promise.resolve(); // do not put in cache network errors @@ -86,7 +72,6 @@ function staticCache(request, response) { } function cache(request, response) { - //console.log(response.type === "error" || response.type === "opaque", request); if (response.type === "error" || response.type === "opaque") { return response; }