Skip to content

Commit

Permalink
PWA.
Browse files Browse the repository at this point in the history
  • Loading branch information
FS-Frost committed Jun 6, 2024
1 parent 3972886 commit c2f8582
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
if ("serviceWorker" in navigator) {
window.addEventListener("load", function () {
navigator.serviceWorker
.register("worker.js")
.register("js/worker.js")
.then(
function (registration) {
console.log("Worker registration successful", registration.scope);
Expand Down
51 changes: 51 additions & 0 deletions public/js/worker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Flag for enabling cache in production
var doCache = false;

var CACHE_NAME = "pwa-app-cache";

// Delete old caches
self.addEventListener("activate", (event) => {
const currentCachelist = [CACHE_NAME];
event.waitUntil(
caches.keys().then((keyList) =>
Promise.all(
keyList.map((key) => {
if (!currentCachelist.includes(key)) {
return caches.delete(key);
}
})
)
)
);
});

// This triggers when user starts the app
self.addEventListener("install", function (event) {
if (doCache) {
event.waitUntil(
caches.open(CACHE_NAME).then(function (cache) {
fetch("asset-manifest.json")
.then((response) => {
response.json();
})
.then((assets) => {
// We will cache initial page and the main.js
// We could also cache assets like CSS and images
const urlsToCache = ["/", assets["main.js"]];
cache.addAll(urlsToCache);
});
})
);
}
});

// Here we intercept request and serve up the matching files
self.addEventListener("fetch", function (event) {
if (doCache) {
event.respondWith(
caches.match(event.request).then(function (response) {
return response || fetch(event.request);
})
);
}
});

0 comments on commit c2f8582

Please sign in to comment.