/* 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, }); }, ), ); } });