wuffle
Version:
A multi-repository task board for GitHub issues
3 lines (2 loc) • 2.02 kB
JavaScript
!function(){"use strict";const e="wuffle-cache-v1";function t(t,n){return fetch(n).then((s=>{if(s&&200===s.status){const a=s.clone();t.waitUntil(function(t,n,s){if(/^https?:/.test(n.url))return caches.open(e).then((e=>{if(t.clientId)return clients.get(t.clientId).then((t=>e.match(n).then((a=>{a&&a.headers.get("ETag")!==s.headers.get("ETag")&&t.postMessage({message:"resource.changed",url:n.url}),e.put(n,s)}))));e.put(n,s)}))}(t,n,a))}return s}))}function n(t,n){return caches.open(e).then((e=>e.match(n).then((e=>e||Promise.reject("not-in-cache")))))}self.addEventListener("install",(t=>{t.waitUntil(caches.open(e).then((function(e){return e.addAll(["/board","/board/apple-touch-icon.png","/board/bundle.css","/board/bundle.js","/board/bundle.js.map","/board/favicon.png","/board/global.css","/board/logo-192.png","/board/logo-512.png","/board/logo.svg","/board/manifest.json"]).catch((e=>console.error("caching failed",e)))}))),self.skipWaiting()})),self.addEventListener("activate",(function(e){e.waitUntil(self.clients.claim())})),self.addEventListener("fetch",(function(e){if("only-if-cached"===e.request.cache&&"same-origin"!==e.request.mode)return;const{request:s}=e,{url:a}=s;if(/^https:\/\/avatars[\d]*\.githubusercontent\.com/.test(a))e.respondWith(n(0,s).catch((()=>t(e,s))).catch((()=>Promise.resolve(new Response('<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" viewBox="0 0 40 40"><path fill="#b3b3b3" d="M0 0h40v40H0z"/><path d="M32 32a2 2 0 01-2 2H10a2 2 0 01-2-2v-2c0-5 8-8 8-8v-2c-2-1-2-3-2-8s4-6 6-6 6 1 6 6 0 7-2 8v2s8 3 8 8z" fill-rule="evenodd" fill="#fff"/></svg>',{headers:{"Content-Type":"image/svg+xml"}})))));else if(!/\/probot\//.test(a)){if(/\/board\?.*$/.test(a)){const s=new Request("/board"),a=t(e,s);return e.respondWith(n(0,s).catch((()=>a))),void e.waitUntil(a)}if(!/\/wuffle\/.*/.test(a)||/\/wuffle\/board$/.test(a)){const a=t(e,s);return e.respondWith(n(0,s).catch((()=>a))),void e.waitUntil(a)}}}))}();
//# sourceMappingURL=service-worker.js.map