diff options
| author | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2023-12-24 04:59:21 +0000 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2023-12-24 04:59:21 +0000 |
| commit | 7ad1b7c380ba5607035149c95ac69fbd403e2bd8 (patch) | |
| tree | 21bb15fd66b2ef99540ab7dafa29d5502f4de9fa /public/sw.js | |
| parent | 3140267ea0a3b37032003992695afd7dc1f4f46c (diff) | |
| download | submelon.dev-7ad1b7c380ba5607035149c95ac69fbd403e2bd8.tar.gz submelon.dev-7ad1b7c380ba5607035149c95ac69fbd403e2bd8.tar.bz2 submelon.dev-7ad1b7c380ba5607035149c95ac69fbd403e2bd8.zip | |
chore: autopublish 2023-12-24T04:59:21Z
Diffstat (limited to 'public/sw.js')
| -rw-r--r-- | public/sw.js | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/public/sw.js b/public/sw.js deleted file mode 100644 index 0241f5c..0000000 --- a/public/sw.js +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Welcome to your Workbox-powered service worker! - * - * You'll need to register this file in your web app and you should - * disable HTTP caching for this file too. - * See https://goo.gl/nhQhGp - * - * The rest of the code is auto-generated. Please don't update this file - * directly; instead, make changes to your Workbox build configuration - * and re-run your build process. - * See https://goo.gl/2aRDsh - */ - -importScripts("workbox-v4.3.1/workbox-sw.js"); -workbox.setConfig({modulePathPrefix: "workbox-v4.3.1"}); - -workbox.core.setCacheNameDetails({prefix: "gatsby-plugin-offline"}); - -workbox.core.skipWaiting(); - -workbox.core.clientsClaim(); - -/** - * The workboxSW.precacheAndRoute() method efficiently caches and responds to - * requests for URLs in the manifest. - * See https://goo.gl/S9QRab - */ -self.__precacheManifest = [ - { - "url": "framework-d428d0ddc925cd3f37ed.js" - }, - { - "url": "app-930967ee013e119175dc.js" - }, - { - "url": "offline-plugin-app-shell-fallback/index.html", - "revision": "b679cee44a1d1f42b0d7437a2ca18b65" - }, - { - "url": "webpack-runtime-51aeee9fae7a9d87101c.js" - }, - { - "url": "manifest.webmanifest", - "revision": "bca2baebe6e7bb39d46fca73f6aa97da" - } -].concat(self.__precacheManifest || []); -workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); - -workbox.routing.registerRoute(/(\.js$|\.css$|static\/)/, new workbox.strategies.CacheFirst(), 'GET'); -workbox.routing.registerRoute(/^https?:.*\/page-data\/.*\.json/, new workbox.strategies.StaleWhileRevalidate(), 'GET'); -workbox.routing.registerRoute(/^https?:.*\.(png|jpg|jpeg|webp|avif|svg|gif|tiff|js|woff|woff2|json|css)$/, new workbox.strategies.StaleWhileRevalidate(), 'GET'); -workbox.routing.registerRoute(/^https?:\/\/fonts\.googleapis\.com\/css/, new workbox.strategies.StaleWhileRevalidate(), 'GET'); - -/* global importScripts, workbox, idbKeyval */ -importScripts(`idb-keyval-3.2.0-iife.min.js`) - -const { NavigationRoute } = workbox.routing - -let lastNavigationRequest = null -let offlineShellEnabled = true - -// prefer standard object syntax to support more browsers -const MessageAPI = { - setPathResources: (event, { path, resources }) => { - event.waitUntil(idbKeyval.set(`resources:${path}`, resources)) - }, - - clearPathResources: event => { - event.waitUntil(idbKeyval.clear()) - - // We detected compilation hash mismatch - // we should clear runtime cache as data - // files might be out of sync and we should - // do fresh fetches for them - event.waitUntil( - caches.keys().then(function (keyList) { - return Promise.all( - keyList.map(function (key) { - if (key && key.includes(`runtime`)) { - return caches.delete(key) - } - - return Promise.resolve() - }) - ) - }) - ) - }, - - enableOfflineShell: () => { - offlineShellEnabled = true - }, - - disableOfflineShell: () => { - offlineShellEnabled = false - }, -} - -self.addEventListener(`message`, event => { - const { gatsbyApi: api } = event.data - if (api) MessageAPI[api](event, event.data) -}) - -function handleAPIRequest({ event }) { - const { pathname } = new URL(event.request.url) - - const params = pathname.match(/:(.+)/)[1] - const data = {} - - if (params.includes(`=`)) { - params.split(`&`).forEach(param => { - const [key, val] = param.split(`=`) - data[key] = val - }) - } else { - data.api = params - } - - if (MessageAPI[data.api] !== undefined) { - MessageAPI[data.api]() - } - - if (!data.redirect) { - return new Response() - } - - return new Response(null, { - status: 302, - headers: { - Location: lastNavigationRequest, - }, - }) -} - -const navigationRoute = new NavigationRoute(async ({ event }) => { - // handle API requests separately to normal navigation requests, so do this - // check first - if (event.request.url.match(/\/.gatsby-plugin-offline:.+/)) { - return handleAPIRequest({ event }) - } - - if (!offlineShellEnabled) { - return await fetch(event.request) - } - - lastNavigationRequest = event.request.url - - let { pathname } = new URL(event.request.url) - pathname = pathname.replace(new RegExp(`^`), ``) - - // Check for resources + the app bundle - // The latter may not exist if the SW is updating to a new version - const resources = await idbKeyval.get(`resources:${pathname}`) - if (!resources || !(await caches.match(`/app-930967ee013e119175dc.js`))) { - return await fetch(event.request) - } - - for (const resource of resources) { - // As soon as we detect a failed resource, fetch the entire page from - // network - that way we won't risk being in an inconsistent state with - // some parts of the page failing. - if (!(await caches.match(resource))) { - return await fetch(event.request) - } - } - - const offlineShell = `/offline-plugin-app-shell-fallback/index.html` - const offlineShellWithKey = workbox.precaching.getCacheKeyForURL(offlineShell) - return await caches.match(offlineShellWithKey) -}) - -workbox.routing.registerRoute(navigationRoute) - -// this route is used when performing a non-navigation request (e.g. fetch) -workbox.routing.registerRoute(/\/.gatsby-plugin-offline:.+/, handleAPIRequest) |
