"use strict"; // Establish a cache name const cacheName = "dandelion_cache_v1"; const contentToCache = [ '/index.html', '/main.css', '/main.js', 'lib//marked.min.js', 'lib/qrcode.min.js', '/db.js', '/favicon.ico' ]; self.addEventListener("install", (e) => { e.waitUntil((async () => { const cache = await caches.open(cacheName); console.log("[Service Worker] Caching all: app shell and content", contentToCache); await cache.addAll(contentToCache); })()); }); async function responder(event) { console.log('Fetching', event.request.url); let response = await fetch(event.request); if (!response) { console.log('Fetch failed, falling back to cache', event.request.url); let cacheMatch = await caches.match(event.request); if (!cacheMatch) { // DUnno what to return here! } return cacheMatch; } if (response.status === 206) { console.log('Not caching partial content'); return response; } console.log('Fetch successful, updating cache'); const cache = await caches.open(cacheName); try { cache.put(event.request, response.clone()).catch((error) => console.log('failed to cache', event.request, error)); } catch (e) { console.log('failed to cache', event.request); } return response; } self.addEventListener('fetch', function (event) { event.respondWith(responder(event)); }); addEventListener("message", async (e) => { console.log(`Message received:`, e.data); switch (e.data.type) { case "update_app": const cache = await caches.open(cacheName); console.log(`[Service Worker] Caching resources`); // cache.put("/main.js", new Response()); for (let item of contentToCache) { cache.delete(item); } await cache.addAll(contentToCache); break; } }); //# sourceMappingURL=sw.js.map