mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-08 22:33:24 +00:00
85 lines
1.6 KiB
JavaScript
85 lines
1.6 KiB
JavaScript
console.log('Hello from sw.js');
|
|
|
|
if (workbox) {
|
|
console.log('Yay! Workbox is loaded 🎉');
|
|
workbox.precaching.precacheAndRoute(self.__precacheManifest);
|
|
|
|
workbox.routing.registerNavigationRoute('/index.html', {
|
|
blacklist: [new RegExp('/api/')]
|
|
});
|
|
|
|
workbox.routing.registerRoute(
|
|
/^\/((?!api).)*$/,
|
|
workbox.strategies.staleWhileRevalidate()
|
|
);
|
|
|
|
workbox.routing.registerRoute(
|
|
/\/api(.*)/,
|
|
workbox.strategies.networkOnly()
|
|
);
|
|
|
|
workbox.routing.registerRoute(
|
|
new RegExp('https://fonts.(?:googleapis|gstatic).com/(.*)'),
|
|
workbox.strategies.cacheFirst({
|
|
cacheName: 'google-fonts',
|
|
plugins: [
|
|
new workbox.expiration.Plugin({
|
|
maxEntries: 30
|
|
}),
|
|
new workbox.cacheableResponse.Plugin({
|
|
statuses: [0, 200]
|
|
})
|
|
]
|
|
})
|
|
);
|
|
|
|
workbox.routing.registerRoute(
|
|
/\.(?:png|gif|jpg|jpeg|svg)$/,
|
|
workbox.strategies.cacheFirst({
|
|
cacheName: 'images',
|
|
plugins: [
|
|
new workbox.expiration.Plugin({
|
|
maxEntries: 120,
|
|
maxAgeSeconds: 30 * 24 * 60 * 60 // 30 Days
|
|
})
|
|
]
|
|
})
|
|
);
|
|
|
|
workbox.routing.registerRoute(
|
|
/imgproxy/,
|
|
workbox.strategies.cacheFirst({
|
|
cacheName: 'imgproxy',
|
|
plugins: [
|
|
new workbox.expiration.Plugin({
|
|
maxEntries: 120,
|
|
maxAgeSeconds: 30 * 24 * 60 * 60 // 30 Days
|
|
})
|
|
]
|
|
})
|
|
);
|
|
|
|
try {
|
|
workbox.googleAnalytics.initialize();
|
|
} catch (e) {
|
|
console.log('Probably an ad-blocker');
|
|
}
|
|
} else {
|
|
console.log("Boo! Workbox didn't load 😬");
|
|
}
|
|
|
|
self.addEventListener('message', event => {
|
|
if (!event.data) {
|
|
return;
|
|
}
|
|
|
|
switch (event.data) {
|
|
case 'skipWaiting':
|
|
self.skipWaiting();
|
|
break;
|
|
default:
|
|
// NOOP
|
|
break;
|
|
}
|
|
});
|