From e377436cedf7fc88288889a1021dfe2855e783b4 Mon Sep 17 00:00:00 2001 From: pooya parsa Date: Tue, 7 May 2019 13:28:01 +0430 Subject: [PATCH] feat(workbox): offlineStrategy BREAKING CHANGE: default changed from NetworkOnly to NetworkFirst when offlinePage is enabled --- packages/workbox/lib/defaults.js | 1 + packages/workbox/lib/options.js | 2 +- packages/workbox/templates/sw.js | 2 +- test/__snapshots__/pwa.test.js.snap | 2 +- test/fixture/layouts/default.vue | 2 +- test/fixture/pages/_page.vue | 5 +++++ 6 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 test/fixture/pages/_page.vue diff --git a/packages/workbox/lib/defaults.js b/packages/workbox/lib/defaults.js index 307f8655..691f1917 100644 --- a/packages/workbox/lib/defaults.js +++ b/packages/workbox/lib/defaults.js @@ -25,6 +25,7 @@ module.exports = { // Offline offline: true, + offlineStrategy: 'NetworkFirst', offlinePage: null, offlineAssets: [], diff --git a/packages/workbox/lib/options.js b/packages/workbox/lib/options.js index e519a57c..58da76d5 100644 --- a/packages/workbox/lib/options.js +++ b/packages/workbox/lib/options.js @@ -56,7 +56,7 @@ function getOptions (moduleOptions) { if (options.offline && !options.offlinePage) { options.runtimeCaching.push({ urlPattern: options.pagesURLPattern, - handler: 'NetworkFirst' + handler: options.offlineStrategy }) } diff --git a/packages/workbox/templates/sw.js b/packages/workbox/templates/sw.js index f5f0d655..6e4f7ae0 100644 --- a/packages/workbox/templates/sw.js +++ b/packages/workbox/templates/sw.js @@ -63,7 +63,7 @@ workbox.precaching.precacheAndRoute(<%= JSON.stringify(options.preCaching, null, <% if (options.offlinePage) { %> // Register router handler for offlinePage workbox.routing.registerRoute(new RegExp('<%= options.pagesURLPattern %>'), ({event}) => { - return new workbox.strategies.NetworkOnly().handle({event}) + return new workbox.strategies.<%= options.offlineStrategy %>().handle({event}) .catch(() => caches.match('<%= options.offlinePage %>')) })<% } %> diff --git a/test/__snapshots__/pwa.test.js.snap b/test/__snapshots__/pwa.test.js.snap index 21700ca0..d00c4328 100644 --- a/test/__snapshots__/pwa.test.js.snap +++ b/test/__snapshots__/pwa.test.js.snap @@ -110,7 +110,7 @@ workbox.routing.registerRoute(new RegExp('/_nuxt/(?!.*(__webpack_hmr|hot-update) // Register router handler for offlinePage workbox.routing.registerRoute(new RegExp('/(?!.*(__webpack_hmr|hot-update))'), ({event}) => { - return new workbox.strategies.NetworkOnly().handle({event}) + return new workbox.strategies.NetworkFirst().handle({event}) .catch(() => caches.match('/offline.html')) }) diff --git a/test/fixture/layouts/default.vue b/test/fixture/layouts/default.vue index 428e0778..b2ae1fec 100644 --- a/test/fixture/layouts/default.vue +++ b/test/fixture/layouts/default.vue @@ -5,7 +5,7 @@ {{ p }} diff --git a/test/fixture/pages/_page.vue b/test/fixture/pages/_page.vue new file mode 100644 index 00000000..fb92f23d --- /dev/null +++ b/test/fixture/pages/_page.vue @@ -0,0 +1,5 @@ +