vegancheck.me/service-worker.js
2024-04-20 21:36:04 +02:00

159 lines
No EOL
4.7 KiB
JavaScript

// import { skipWaiting, clientsClaim } from 'workbox-core';
// import { ExpirationPlugin } from 'workbox-expiration';
// import { NetworkOnly, NetworkFirst, CacheFirst, StaleWhileRevalidate } from 'workbox-strategies';
// import { registerRoute, setDefaultHandler, setCatchHandler } from 'workbox-routing';
// import { matchPrecache, precacheAndRoute, cleanupOutdatedCaches } from 'workbox-precaching';
// skipWaiting();
// clientsClaim();
// // must include following lines when using inject manifest module from workbox
// // https://developers.google.com/web/tools/workbox/guides/precache-files/workbox-build#add_an_injection_point
// const WB_MANIFEST = self.__WB_MANIFEST;
// // Precache fallback route and image
// WB_MANIFEST.push({
// url: 'en/fallback',
// revision: '1234567890',
// });
// precacheAndRoute(WB_MANIFEST);
// cleanupOutdatedCaches();
// registerRoute(
// '/',
// new NetworkFirst({
// cacheName: 'start-url',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 1,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// registerRoute(
// /\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,
// new StaleWhileRevalidate({
// cacheName: 'static-font-assets',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 4,
// maxAgeSeconds: 604800,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// // disable image cache, so we could observe the placeholder image when offline
// registerRoute(
// /\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,
// new NetworkOnly({
// cacheName: 'static-image-assets',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 64,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// registerRoute(
// /\.(?:js)$/i,
// new StaleWhileRevalidate({
// cacheName: 'static-js-assets',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 32,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// registerRoute(
// /\.(?:css|scss)$/i,
// new StaleWhileRevalidate({
// cacheName: 'static-style-assets',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 32,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// registerRoute(
// /\.(?:json|xml|csv)$/i,
// new NetworkFirst({
// cacheName: 'static-data-assets',
// plugins: [
// new ExpirationPlugin({
// maxEntries: 32,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// registerRoute(
// /.*/i,
// new NetworkFirst({
// cacheName: 'others',
// networkTimeoutSeconds: 10,
// plugins: [
// new ExpirationPlugin({
// maxEntries: 32,
// maxAgeSeconds: 86400,
// purgeOnQuotaError: !0,
// }),
// ],
// }),
// 'GET'
// );
// // following lines gives you control of the offline fallback strategies
// // https://developers.google.com/web/tools/workbox/guides/advanced-recipes#comprehensive_fallbacks
// // Use a stale-while-revalidate strategy for all other requests.
// setDefaultHandler(new StaleWhileRevalidate());
// // This "catch" handler is triggered when any of the other routes fail to
// // generate a response.
// setCatchHandler(({ event }) => {
// // The FALLBACK_URL entries must be added to the cache ahead of time, either
// // via runtime or precaching. If they are precached, then call
// // `matchPrecache(FALLBACK_URL)` (from the `workbox-precaching` package)
// // to get the response from the correct cache.
// //
// // Use event, request, and url to figure out how to respond.
// // One approach would be to use request.destination, see
// // https://medium.com/dev-channel/service-worker-caching-strategies-based-on-request-types-57411dd7652c
// switch (event.request.destination) {
// case 'document':
// // If using precached URLs:
// return matchPrecache('en/fallback');
// // return caches.match('/fallback')
// break;
// case 'image':
// // If using precached URLs:
// return matchPrecache('/static/images/fallback.png');
// // return caches.match('/static/images/fallback.png')
// break;
// case 'font':
// // If using precached URLs:
// // return matchPrecache(FALLBACK_FONT_URL);
// // return caches.match('/static/fonts/fallback.otf')
// // break
// default:
// // If we don't have a fallback, just return an error response.
// return Response.error();
// }
// });