-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservice-worker.min.js
More file actions
1 lines (1 loc) · 1.05 KB
/
service-worker.min.js
File metadata and controls
1 lines (1 loc) · 1.05 KB
1
const version="resound-004",assets=["/","package.html","img/icon.png","img/sphere-down.png","img/sphere-up.png"].map(e=>new URL(e,self.location).toString());async function performFetch(e){const a=e.request;try{const e=await caches.match(a);if(e)return e;const t=await fetch(a);if("GET"===a.method&&t&&t.ok){(await caches.open(version)).put(a,t.clone())}return t}catch(e){if("navigate"===a.mode){const e=await caches.match(new URL("package.html",self.location).toString());if(e)return e}throw e}}self.addEventListener("install",e=>{e.waitUntil((async()=>{console.log("@install");const e=await caches.open(version);try{await e.addAll(assets),console.log("cached assets",assets)}catch(e){console.warn("cache.addAll failed (some assets may be missing)",e)}await self.skipWaiting()})())}),self.addEventListener("activate",e=>{e.waitUntil((async()=>{console.log("@activate");const e=await caches.keys();await Promise.all(e.map(e=>e!==version?caches.delete(e):Promise.resolve())),await self.clients.claim()})())}),self.addEventListener("fetch",e=>{e.respondWith(performFetch(e))});