Files
package-tools/public/sw.js
T
zemion 01c7a8c372
Verify / verify (push) Canceled after 0s
Release Package Tools 0.2.0
2026-09-02 11:29:24 +02:00

49 lines
1.1 KiB
JavaScript

const CACHE = "package-tools-v0.2.0";
const APP = [
"./",
"./index.html",
"./manifest.webmanifest",
"./favicon.svg",
"./toolbox-app.json",
];
self.addEventListener("install", (event) => {
event.waitUntil(
caches
.open(CACHE)
.then((cache) => cache.addAll(APP))
.then(() => self.skipWaiting()),
);
});
self.addEventListener("activate", (event) => {
event.waitUntil(
caches
.keys()
.then((keys) =>
Promise.all(
keys.filter((key) => key !== CACHE).map((key) => caches.delete(key)),
),
)
.then(() => self.clients.claim()),
);
});
self.addEventListener("fetch", (event) => {
if (
event.request.method !== "GET" ||
new URL(event.request.url).origin !== self.location.origin
)
return;
event.respondWith(
caches.match(event.request).then(
(hit) =>
hit ||
fetch(event.request).then((response) => {
if (response.ok)
caches
.open(CACHE)
.then((cache) => cache.put(event.request, response.clone()));
return response;
}),
),
);
});