const staticCacheName = 'wieslab-v12'; const filesToCache = [ '/hubfs/wieslab-app/svar-wieslab-logo.svg', '/hubfs/wieslab-app/vial-140.svg', '/hubfs/wieslab-app/vial-bl.svg', '/hubfs/wieslab-app/language.svg', '/hubfs/wieslab-app/home-140.svg', '/hubfs/wieslab-app/home-bl.svg', '/hubfs/wieslab-app/thermo-140.svg', '/hubfs/wieslab-app/thermo-bl.svg', '/hubfs/wieslab-app/info-140.svg', '/hubfs/wieslab-app/info-bl.svg', '/hubfs/wieslab-app/contact-140.svg', '/hubfs/wieslab-app/contact-bl.svg', '/hubfs/wieslab-app/arrow.svg', '/hubfs/wieslab-app/arrow-white.svg', 'https://www.wieslab.se', '/hubfs/wieslab-app/tiny-slider-2.9.4/tiny-slider.js', '/hubfs/wieslab-app/tiny-slider-2.9.4/tiny-slider.css', '/hubfs/wieslab-app/pdf-js-2.14.305/build/pdf.js', '/hubfs/wieslab-app/pdf-js-2.14.305/build/pdf.worker.js' ]; self.addEventListener('message', event => { if (event.data.action === 'skipWaiting') { self.skipWaiting(); } }); self.addEventListener('install', event => { console.log('Attempting to install service worker and cache static assets'); //self.skipWaiting(); event.waitUntil( caches.open(staticCacheName) .then(cache => { return cache.addAll(filesToCache); }) ); }); this.addEventListener('activate', function(event) { event.waitUntil( caches.keys().then(function(keyList) { return Promise.all(keyList.map(function(key) { if (staticCacheName.indexOf(key) === -1) { return caches.delete(key); } })); }) ); }); self.addEventListener('fetch', (event) => { const url = new URL(event.request.url); if (url.origin == location.origin && (event.request.url.indexOf('wieslab-app') > -1 || event.request.url.indexOf('Diagnostic') > -1 || url == 'https://www.wieslab.se' || url == 'https://www.wieslab.se/')) { event.respondWith(caches.open(staticCacheName).then((cache) => { return cache.match(event.request).then((cachedResponse) => { const fetchedResponse = fetch(event.request).then((networkResponse) => { console.log("adding to cache: "+event.request.url); cache.put(event.request, networkResponse.clone()); return networkResponse; }); return cachedResponse || fetchedResponse; }); })); } else { return; } });