36 lines
940 B
TypeScript
36 lines
940 B
TypeScript
/*
|
|
* This file (which will be your service worker)
|
|
* is picked up by the build system ONLY if
|
|
* quasar.config.js > pwa > workboxMode is set to "injectManifest"
|
|
*/
|
|
|
|
declare const self: ServiceWorkerGlobalScope &
|
|
typeof globalThis & { skipWaiting: () => void };
|
|
|
|
import { clientsClaim } from 'workbox-core';
|
|
import {
|
|
precacheAndRoute,
|
|
cleanupOutdatedCaches,
|
|
createHandlerBoundToURL,
|
|
} from 'workbox-precaching';
|
|
import { registerRoute, NavigationRoute } from 'workbox-routing';
|
|
|
|
self.skipWaiting();
|
|
clientsClaim();
|
|
|
|
// Use with precache injection
|
|
precacheAndRoute(self.__WB_MANIFEST);
|
|
|
|
cleanupOutdatedCaches();
|
|
|
|
// Non-SSR fallback to index.html
|
|
// Production SSR fallback to offline.html (except for dev)
|
|
if (process.env.MODE !== 'ssr' || process.env.PROD) {
|
|
registerRoute(
|
|
new NavigationRoute(
|
|
createHandlerBoundToURL(process.env.PWA_FALLBACK_HTML),
|
|
{ denylist: [/sw\.js$/, /workbox-(.)*\.js$/] }
|
|
)
|
|
);
|
|
}
|