aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/sw.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/sw.js')
-rw-r--r--public/sw.js175
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)