diff options
Diffstat (limited to 'static/service-worker')
| -rw-r--r-- | static/service-worker/index.js | 21 | ||||
| -rw-r--r-- | static/service-worker/worker.js | 41 |
2 files changed, 0 insertions, 62 deletions
diff --git a/static/service-worker/index.js b/static/service-worker/index.js deleted file mode 100644 index cff4b95..0000000 --- a/static/service-worker/index.js +++ /dev/null @@ -1,21 +0,0 @@ -export const register = async () => { - if (!'serviceWorker' in navigator) { - console.warn('service worker not supported by browser'); - return; - } - - try { - const registration = await navigator.serviceWorker.register("/service-worker/worker.js", { - scope: "/", - }); - if (registration.installing) { - console.log("Service worker installing"); - } else if (registration.waiting) { - console.log("Service worker installed"); - } else if (registration.active) { - console.log("Service worker active"); - } - } catch (error) { - console.error(`Registration failed with ${error}`); - } -} diff --git a/static/service-worker/worker.js b/static/service-worker/worker.js deleted file mode 100644 index 666c7d3..0000000 --- a/static/service-worker/worker.js +++ /dev/null @@ -1,41 +0,0 @@ -const cachable_api = [ - '/api/image/load/', -]; - -const is_cachable = (url) => { - for (const api of cachable_api) { - console.log(api, url); - if (url.includes(api)) { - return true; - } - } - - return false; -} - -const put_in_cache = async (request, response) => { - const cache = await caches.open("v1"); - await cache.put(request, response); -}; - -const cache_first = async (request, event) => { - if (request.method !== 'GET') { - return await fetch(request); - } - - if (!is_cachable(request.url)) { - return await fetch(request); - } - - const cache_response = await caches.match(request); - if (cache_response) { - return cache_response; - } - const network_response = await fetch(request); - event.waitUntil(put_in_cache(request, network_response.clone())); - return network_response; -}; - -self.addEventListener("fetch", (event) => { - event.respondWith(cache_first(event.request, event)); -}); |