const CACHE_NAME = 'workout-runner-cache-v1.2'; const urlsToCache = [ '/', '/index.html', '/style.css', '/app.js', '/manifest.json', '/idb.umd.js', '/icons/icon-192x192.png', '/icons/icon-512x512.png', ]; self.addEventListener('install', event => { self.skipWaiting(); event.waitUntil( caches.open(CACHE_NAME) .then(cache => { console.log('Opened cache and caching app shell'); return cache.addAll(urlsToCache); }) ); }); self.addEventListener('activate', event => { event.waitUntil( caches.keys().then(cacheNames => { return Promise.all( cacheNames.map(cacheName => { if (cacheName !== CACHE_NAME) { console.log('Deleting old cache:', cacheName); return caches.delete(cacheName); } }) ); }).then(() => { return self.clients.claim(); }) ); }); self.addEventListener('fetch', event => { if (event.request.method !== 'GET') { return; } event.respondWith( fetch(event.request) .then(networkResponse => { return caches.open(CACHE_NAME).then(cache => { cache.put(event.request, networkResponse.clone()); return networkResponse; }); }) .catch(() => { return caches.match(event.request); }) ); });