diff --git a/static/service-worker.js b/static/service-worker.js index e22c1e7..9402b03 100644 --- a/static/service-worker.js +++ b/static/service-worker.js @@ -1,21 +1,51 @@ -// CREDITS: https://www.pwabuilder.com/serviceworker +// CREDITS: https://github.com/umluizlima/flask-pwa/blob/master/app/static/sw.js // File Created by [Check Commits for Name] -// This is the service worker with the Cache-first network +console.log('Hello from sw.js'); -const CACHE = "pwabuilder-precache"; +importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.2.0/workbox-sw.js'); -importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js'); +if (workbox) { + console.log(`Yay! Workbox is loaded 🎉`); -self.addEventListener("message", (event) => { - if (event.data && event.data.type === "SKIP_WAITING") { - self.skipWaiting(); - } -}); + workbox.precaching.precacheAndRoute([ + { + "url": "/", + "revision": "1" + } + ]); -workbox.routing.registerRoute( - new RegExp('/'), - new workbox.strategies.CacheFirst({ - cacheName: CACHE - }) -); \ No newline at end of file + workbox.routing.registerRoute( + /\.(?:js|css)$/, + workbox.strategies.staleWhileRevalidate({ + cacheName: 'static-resources', + }), + ); + + workbox.routing.registerRoute( + /\.(?:png|gif|jpg|jpeg|svg)$/, + workbox.strategies.cacheFirst({ + cacheName: 'images', + plugins: [ + new workbox.expiration.Plugin({ + maxEntries: 60, + maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days + }), + ], + }), + ); + + workbox.routing.registerRoute( + new RegExp('https://fonts.(?:googleapis|gstatic).com/(.*)'), + workbox.strategies.cacheFirst({ + cacheName: 'googleapis', + plugins: [ + new workbox.expiration.Plugin({ + maxEntries: 30, + }), + ], + }), + ); +} else { + console.log(`Boo! Workbox didn't load 😬`); +} \ No newline at end of file