Repository navigation
Expand file tree
/
Copy pathsw.js
More file actions
1 lines (1 loc) · 2.38 KB
/
Copy pathsw.js
File metadata and controls
1 lines (1 loc) · 2.38 KB
1
var version="v1.00:",offlineFundamentals=["/","offline.html"],updateStaticCache=function(){return caches.open(version+"fundamentals").then(function(e){return Promise.all(offlineFundamentals.map(function(t){var n=new Request(t);return new URL(n.url).origin!=location.origin&&(n=new Request(t,{mode:"no-cors"})),fetch(n).then(function(t){var i=t.clone();return e.put(n,i)})}))})},clearOldCaches=function(){return caches.keys().then(function(e){return Promise.all(e.filter(function(e){return 0!=e.indexOf(version)}).map(function(e){return caches["delete"](e)}))})},trimCache=function(e,t){caches.open(e).then(function(n){n.keys().then(function(i){i.length>t&&n["delete"](i[0]).then(trimCache(e,t))})})};self.addEventListener("install",function(e){e.waitUntil(updateStaticCache().then(function(){return self.skipWaiting()}))}),self.addEventListener("message",function(e){"trimCache"==e.data.command&&(trimCache(version+"pages",25),trimCache(version+"images",10),trimCache(version+"assets",30))}),self.addEventListener("fetch",function(e){var t=function(t){var n=t.clone();return-1!=e.request.headers.get("Accept").indexOf("text/html")?caches.open(version+"pages").then(function(t){t.put(e.request,n)}):-1!=e.request.headers.get("Accept").indexOf("image")?caches.open(version+"images").then(function(t){t.put(e.request,n)}):caches.open(version+"assets").then(function(t){t.put(e.request,n)}),t},n=function(){return-1!=e.request.headers.get("Accept").indexOf("text/html")?caches.match(e.request).then(function(e){return e||caches.match("/offline/")}):-1!=e.request.headers.get("Accept").indexOf("image")?new Response('<svg width="400" height="300" role="img" aria-labelledby="offline-title" viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg"><title id="offline-title">Offline</title><g fill="none" fill-rule="evenodd"><path fill="#D8D8D8" d="M0 0h400v300H0z"/><text fill="#9B9B9B" font-family="Helvetica Neue,Arial,Helvetica,sans-serif" font-size="72" font-weight="bold"><tspan x="93" y="172">offline</tspan></text></g></svg>',{headers:{"Content-Type":"image/svg+xml"}}):void 0};if("GET"==e.request.method)return-1!=e.request.headers.get("Accept").indexOf("text/html")?void e.respondWith(fetch(e.request).then(t,n)):void e.respondWith(caches.match(e.request).then(function(i){return i||fetch(e.request).then(t,n)}))}),self.addEventListener("activate",function(e){e.waitUntil(clearOldCaches().then(function(){return self.clients.claim()}))});