47 lines
No EOL
1.2 KiB
JavaScript
47 lines
No EOL
1.2 KiB
JavaScript
const staticLooper = "looper-app-v1";
|
|
const assets = [
|
|
"/",
|
|
"/index.html",
|
|
"/shell.js",
|
|
"/icon.png",
|
|
"/icon.svg",
|
|
"/index.wasm",
|
|
"/index.js"
|
|
];
|
|
const devAssets = [
|
|
"/index.html.symbols",
|
|
"/index.wasm.map"
|
|
];
|
|
self.addEventListener("message", (event) => {
|
|
if (event.data) {
|
|
switch (event.data.type) {
|
|
case "UNREGISTER": {
|
|
self.unregister();
|
|
} break;
|
|
case "UPDATE": {
|
|
caches.open(staticLooper).then(async cache => {
|
|
await cache.addAll(assets);
|
|
try {
|
|
await cache.addAll(devAssets);
|
|
} catch (e) {
|
|
console.warn("Could not add developer assets!");
|
|
}
|
|
})
|
|
} break;
|
|
}
|
|
}
|
|
})
|
|
self.addEventListener("install", installEvent => {
|
|
installEvent.waitUntil(
|
|
self.postMessage({
|
|
type: "UPDATE"
|
|
})
|
|
)
|
|
});
|
|
self.addEventListener("fetch", fetchEvent => {
|
|
fetchEvent.respondWith(
|
|
caches.match(fetchEvent.request).then(res => {
|
|
return res || fetch(fetchEvent.request);
|
|
})
|
|
)
|
|
}); |