| | |
| | | /* eslint-disable no-restricted-globals */ |
| | | /* eslint-disable no-underscore-dangle */ |
| | | /* globals workbox */ |
| | | workbox.core.setCacheNameDetails({ |
| | | prefix: 'antd-pro', |
| | | suffix: 'v5', |
| | | }); |
| | | // Control all opened tabs ASAP |
| | | workbox.clientsClaim(); |
| | | |
| | | /** |
| | | * Use precaching list generated by workbox in build process. |
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.precaching |
| | | */ |
| | | workbox.precaching.precacheAndRoute(self.__precacheManifest || []); |
| | | |
| | | /** |
| | | * Register a navigation route. |
| | | * https://developers.google.com/web/tools/workbox/modules/workbox-routing#how_to_register_a_navigation_route |
| | | */ |
| | | workbox.routing.registerNavigationRoute('/index.html'); |
| | | |
| | | /** |
| | | * Use runtime cache: |
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.routing#.registerRoute |
| | | * |
| | | * Workbox provides all common caching strategies including CacheFirst, NetworkFirst etc. |
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.strategies |
| | | */ |
| | | |
| | | /** Handle API requests */ |
| | | workbox.routing.registerRoute(/\/api\//, workbox.strategies.networkFirst()); |
| | | |
| | | /** Handle third party requests */ |
| | | workbox.routing.registerRoute( |
| | | /^https:\/\/gw\.alipayobjects\.com\//, |
| | | workbox.strategies.networkFirst(), |
| | | ); |
| | | workbox.routing.registerRoute( |
| | | /^https:\/\/cdnjs\.cloudflare\.com\//, |
| | | workbox.strategies.networkFirst(), |
| | | ); |
| | | workbox.routing.registerRoute(/\/color.less/, workbox.strategies.networkFirst()); |
| | | |
| | | /** Response to client after skipping waiting with MessageChannel */ |
| | | addEventListener('message', (event) => { |
| | | const replyPort = event.ports[0]; |
| | | const message = event.data; |
| | | if (replyPort && message && message.type === 'skip-waiting') { |
| | | event.waitUntil( |
| | | self.skipWaiting().then( |
| | | () => { |
| | | replyPort.postMessage({ |
| | | error: null, |
| | | }); |
| | | }, |
| | | (error) => { |
| | | replyPort.postMessage({ |
| | | error, |
| | | }); |
| | | }, |
| | | ), |
| | | ); |
| | | } |
| | | }); |
| | | /* eslint-disable no-restricted-globals */
|
| | | /* eslint-disable no-underscore-dangle */
|
| | | /* globals workbox */
|
| | | workbox.core.setCacheNameDetails({
|
| | | prefix: 'antd-pro',
|
| | | suffix: 'v5',
|
| | | });
|
| | | // Control all opened tabs ASAP
|
| | | workbox.clientsClaim();
|
| | |
|
| | | /**
|
| | | * Use precaching list generated by workbox in build process.
|
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.precaching
|
| | | */
|
| | | workbox.precaching.precacheAndRoute(self.__precacheManifest || []);
|
| | |
|
| | | /**
|
| | | * Register a navigation route.
|
| | | * https://developers.google.com/web/tools/workbox/modules/workbox-routing#how_to_register_a_navigation_route
|
| | | */
|
| | | workbox.routing.registerNavigationRoute('/index.html');
|
| | |
|
| | | /**
|
| | | * Use runtime cache:
|
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.routing#.registerRoute
|
| | | *
|
| | | * Workbox provides all common caching strategies including CacheFirst, NetworkFirst etc.
|
| | | * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.strategies
|
| | | */
|
| | |
|
| | | /** Handle API requests */
|
| | | workbox.routing.registerRoute(/\/api\//, workbox.strategies.networkFirst());
|
| | |
|
| | | /** Handle third party requests */
|
| | | workbox.routing.registerRoute(
|
| | | /^https:\/\/gw\.alipayobjects\.com\//,
|
| | | workbox.strategies.networkFirst(),
|
| | | );
|
| | | workbox.routing.registerRoute(
|
| | | /^https:\/\/cdnjs\.cloudflare\.com\//,
|
| | | workbox.strategies.networkFirst(),
|
| | | );
|
| | | workbox.routing.registerRoute(/\/color.less/, workbox.strategies.networkFirst());
|
| | |
|
| | | /** Response to client after skipping waiting with MessageChannel */
|
| | | addEventListener('message', (event) => {
|
| | | const replyPort = event.ports[0];
|
| | | const message = event.data;
|
| | | if (replyPort && message && message.type === 'skip-waiting') {
|
| | | event.waitUntil(
|
| | | self.skipWaiting().then(
|
| | | () => {
|
| | | replyPort.postMessage({
|
| | | error: null,
|
| | | });
|
| | | },
|
| | | (error) => {
|
| | | replyPort.postMessage({
|
| | | error,
|
| | | });
|
| | | },
|
| | | ),
|
| | | );
|
| | | }
|
| | | });
|