sw.js 2.01 KB
var sw={cacheName:"",cache:function(t,n){return caches.open(this.cacheName).then(function(e){return e.put(t,n)})},precache:function(t){return caches.open(this.cacheName).then(function(e){return e.addAll(t)})},fromCache:function(n){return caches.open(this.cacheName).then(function(t){return t.match(n).then(function(e){return e?Promise.resolve(e):(sw.delExpiredCache(t,n),Promise.reject("no match"))})})},delExpiredCache:function(n,r){var c=new URL(r.url);return n.keys().then(function(e){e.every(function(e){var t=new URL(e.url);return e.url==r.url||c.pathname!==t.pathname||c.search===t.search||(n.delete(e),!1)})})},fromNetwork:function(e){return fetch(e)},matchRoute:function(t){var e=this.routes,n=this.nocaches,r=!1;return e.every(function(e){return!(r=!!t.url.match(e)&&!t.url.match(n))}),r},on:function(e,t){self.addEventListener(e,t)},init:function(e,t){var n=t.precache||[];this.cacheName=e,this.routes=t.routes,this.nocaches=t.nocaches,this.on("install",function(e){e.waitUntil(sw.precache(n).then(function(){return self.skipWaiting()}))}),this.on("fetch",function(e){var t=e.request;sw.matchRoute(t)&&e.respondWith(sw.fromCache(t).catch(function(){return sw.fromNetwork(t).then(function(e){return sw.cache(t,e),Promise.resolve(e.clone())})}))}),this.on("activate",function(e){e.waitUntil(self.clients.claim())})}},CACHE_NAME="mobilemode-cache";function reporting(){return caches.open(CACHE_NAME).then(function(t){return t.keys().then(function(e){return Promise.all(e.map(function(e){return t.match(e).then(function(e){var t=e.headers,n=new URL(e.url);return{url:e.url,pathname:n.pathname,size:t.get("Content-Length"),lastModified:new Date(t.get("date"))}})}))})})}sw.init(CACHE_NAME,{routes:[/\/mobilemode\/mobile\/.*\.(html|js[^p]|css)/g],nocaches:/.*nocache|demo\/.*?\.html|view\.html.*?$/g,precache:["./dist/js/lib/require/require.min_wev8.js?v=7eb8e3066f","./dist/js/main/main.js?v=532bee6203"]}),self.addEventListener("message",function(t){switch(t.data.command){case"report":reporting().then(function(e){t.ports[0].postMessage({data:e})})}});