diff options
Diffstat (limited to 'assets/sw.dev.js')
-rw-r--r-- | assets/sw.dev.js | 102 |
1 files changed, 26 insertions, 76 deletions
diff --git a/assets/sw.dev.js b/assets/sw.dev.js index afd1b2f3..48548faf 100644 --- a/assets/sw.dev.js +++ b/assets/sw.dev.js @@ -1,78 +1,28 @@ -self.addEventListener('install', function (/*event*/) { - // The promise that skipWaiting() returns can be safely ignored. - self.skipWaiting(); +importScripts( + 'https://storage.googleapis.com/workbox-cdn/releases/6.0.2/workbox-sw.js' +); +const { registerRoute } = workbox.routing; +const { CacheFirst, StaleWhileRevalidate } = workbox.strategies; +const { ExpirationPlugin } = workbox.expiration; - // Perform any other actions required for your - // service worker to install, potentially inside - // of event.waitUntil(); -}); -self.addEventListener('activate', (event) => { - event.waitUntil(clients.claim()); -}); -if (typeof workbox === 'undefined') { - importScripts( - 'https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js' - ); - workbox.loadModule('workbox-strategies'); - workbox.loadModule('workbox-cacheable-response'); - workbox.loadModule('workbox-expiration'); -} -self.__precacheManifest = [].concat(self.__precacheManifest || []); -if (typeof workbox !== 'undefined' && workbox) { - workbox.core.skipWaiting(); +self.__precacheManifest = [].concat(self.__WB_MANIFEST || []); +registerRoute( + ({ request, url }) => + request.destination === 'image' || url.includes('assets/vendor'), + new CacheFirst() +); +/*registerRoute( + ({ request }) => + request.destination === 'script' || request.destination === 'style', + new StaleWhileRevalidate() +);*/ - workbox.core.clientsClaim(); - - workbox.precaching.precacheAndRoute([]); - - console.log(`Yay! Workbox is loaded 🎉`); - - workbox.routing.registerRoute( - /\/assets\/css/, - new workbox.strategies.CacheFirst({ - cacheName: 'vendor-local-css', - plugins: [ - new workbox.cacheableResponse.CacheableResponse({ statuses: [0, 200] }), - ], - }) - ); - workbox.routing.registerRoute( - /\/assets\/js/, - new workbox.strategies.CacheFirst({ - cacheName: 'vendor-local-js', - plugins: [ - new workbox.cacheableResponse.CacheableResponse({ statuses: [0, 200] }), - ], - }) - ); - workbox.routing.registerRoute( - /\/img/, - new workbox.strategies.CacheFirst({ - cacheName: 'image-files', - plugins: [ - new workbox.cacheableResponse.CacheableResponse({ statuses: [0, 200] }), - ], - }) - ); - - // Cache the Google Fonts stylesheets with a stale-while-revalidate strategy. - workbox.routing.registerRoute( - /^https:\/\/fonts\.googleapis\.com/, - new workbox.strategies.StaleWhileRevalidate({ - cacheName: 'google-fonts-stylesheets', - }) - ); - - // Cache the underlying font files with a cache-first strategy for 1 year. - workbox.routing.registerRoute( - /^https:\/\/fonts\.gstatic\.com/, - new workbox.strategies.CacheFirst({ - cacheName: 'google-fonts-webfonts', - plugins: [ - new workbox.cacheableResponse.CacheableResponse({ statuses: [0, 200] }), - ], - }) - ); -} else { - console.log(`Boo! Workbox didn't load 😬`); -} +registerRoute( + ({ url }) => + url.origin === 'https://fonts.googleapis.com' || + url.origin === 'https://fonts.gstatic.com', + new StaleWhileRevalidate({ + cacheName: 'google-fonts', + plugins: [new ExpirationPlugin({ maxEntries: 20 })], + }) +); |