home-app/public/sw.js

58 lines
1.2 KiB
JavaScript

importScripts("workbox/workbox-sw.js");
self.addEventListener("install", (e) => {
self.skipWaiting();
});
if (workbox) {
workbox.core.setCacheNameDetails({
prefix: "home-app",
suffix: "0.0.3",
precache: "precache",
runtime: "runtime",
});
workbox.routing.registerRoute(
/\/assets/,
new workbox.strategies.CacheFirst({
plugins: [
new workbox.expiration.Plugin({
maxAgeSeconds: 24 * 60 * 60,
}),
],
cacheName: "assets",
})
);
workbox.routing.registerRoute(
"/manifest.json",
new workbox.strategies.StaleWhileRevalidate({
plugins: [
new workbox.expiration.Plugin({
maxAgeSeconds: 7 * 24 * 60 * 60,
}),
],
cacheName: "assets",
})
);
workbox.routing.registerRoute(
"/",
new workbox.strategies.StaleWhileRevalidate({
plugins: [
new workbox.expiration.Plugin({
maxAgeSeconds: 60 * 60 * 24,
}),
],
cacheName: "assets",
})
);
workbox.routing.registerRoute(
/\**/,
new workbox.strategies.StaleWhileRevalidate({
plugins: [
new workbox.expiration.Plugin({
maxAgeSeconds: 60 * 60 * 24,
}),
],
cacheName: "assets",
})
);
}