diff --git a/js/pwabuilder-sw.js b/js/pwabuilder-sw.js index f17a005..b3de1bb 100644 --- a/js/pwabuilder-sw.js +++ b/js/pwabuilder-sw.js @@ -1,12 +1,35 @@ -var cacheName = 'darkshy-cache-v1'; -var assetsToCache = ['css/style.css']; +// This is the "Offline page" service worker -self.addEventListener('install', function(event) { - event.waitUntil( - caches.open(cacheName) - .then(function(cache) { - console.log('Opened cache'); - return cache.addAll(assetsToCache); - }) - ); -}); \ No newline at end of file +importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js'); + +const CACHE = "darkshy-page"; + +// TODO: replace the following with the correct offline fallback page i.e.: const offlineFallbackPage = "offline.html"; +const offlineFallbackPage = "offline.html"; + +self.addEventListener("message", (event) => { + if (event.data && event.data.type === "SKIP_WAITING") { + self.skipWaiting(); + } +}); + +self.addEventListener('install', async (event) => { + event.waitUntil( + caches.open(CACHE) + .then((cache) => cache.add(offlineFallbackPage)) + ); +}); + +if (workbox.navigationPreload.isSupported()) { + workbox.navigationPreload.enable(); +} + +self.addEventListener('fetch', (event) => { + if (event.request.mode === 'navigate') { + event.respondWith((async () => { + try { + const preloadResp = await event.preloadResponse; + + if (preloadResp) { + return preloadResp; + } \ No newline at end of file