forked from jekuer/php-microsite-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserviceworker-cache.min.js
2 lines (2 loc) · 2.66 KB
/
serviceworker-cache.min.js
1
2
"use strict";!function(){var hostname=self.location.hostname,version="v5::",domainWhitelist=[];domainWhitelist.push(hostname);var lang=["","de","es"],pagesCacheName="pages",assetsCacheName="assets",createOfflineCache=function(){var offlinePages=[];return lang.forEach((function(element){""!=element&&(element="/"+element),offlinePages.push("https://"+hostname+element+"/offline/")})),caches.open("v5::pages").then((function(cache){return cache.addAll(offlinePages)}))},clearOldCaches=function(){return caches.keys().then((function(keys){return Promise.all(keys.filter((function(key){return 0!==key.indexOf("v5::")})).map((function(key){return caches.delete(key)})))}))};self.addEventListener("install",(function(event){event.waitUntil(createOfflineCache().then((function(){return self.skipWaiting()})))})),self.addEventListener("activate",(function(event){event.waitUntil(clearOldCaches().then((function(){return self.clients.claim()})))})),self.addEventListener("fetch",(function(event){var request=event.request;if(("only-if-cached"!==request.cache||"same-origin"===request.mode)&&307!=request.cache&&!0!==request.url.includes("purge/directus_cache")&&!0!==request.url.includes("rebuild/directus_cache")){var langSlug="",requestpathParts=request.url.split("/");requestpathParts.length>3&&void 0!==requestpathParts[3]&&null!==requestpathParts[3]&&""!==requestpathParts[3]&&lang.includes(requestpathParts[3])&&(langSlug="/"+requestpathParts[3]);var offlinePagePath=langSlug+"/offline/";if("GET"===request.method)if(-1!==request.headers.get("Accept").indexOf("text/html"))"navigate"!==request.mode&&(request=new Request(request.url,{method:"GET",headers:request.headers,mode:request.mode,credentials:request.credentials,redirect:request.redirect})),event.respondWith(fetch(request).then((function(response){return caches.open("v5::pages").then((function(cache){return cache.put(request,response.clone()),response}))})).catch((function(){return caches.open("v5::pages").then(cache=>cache.match(request).then(matching=>matching||cache.match(offlinePagePath)))})));else{var requesturl,domainstring=request.url.replace("http://","").replace("https://","").replace("www.","").split(/[/?#]/)[0];if(!1===domainWhitelist.includes(domainstring))return;event.respondWith(caches.open("v5::assets").then((function(cache){return cache.match(request).then((function(matching){var fetchPromise=fetch(request).then((function(response){return cache.put(request,response.clone()),response}));return matching||fetchPromise}))})))}else event.respondWith(fetch(request).catch((function(){return caches.open("v5::pages").then((function(cache){return cache.match(offlinePagePath)}))})))}}))}();
//# sourceMappingURL=serviceworker-cache.min.js.map