Skip to content

Commit

Permalink
improved service worker
Browse files Browse the repository at this point in the history
  • Loading branch information
tjjfvi committed Sep 23, 2018
1 parent b618038 commit 2cd35df
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 34 deletions.
28 changes: 28 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"license": "ISC",
"dependencies": {
"express": "^4.16.3",
"fs-extra": "^7.0.0",
"globby": "^8.0.1"
}
}
7 changes: 7 additions & 0 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ const router = express.Router();

const globby = require("globby");

const fs = require("fs-extra");

router.use(express.static(__dirname + "/static"));

router.get("/js/preloadDependencies.js", async (req, res) => {
Expand All @@ -24,6 +26,11 @@ router.get("/js/preloadDependencies.js", async (req, res) => {
res.set("Content-Type", "text/javascript").send(js);
})

router.get("/sw.js", async (req, res) => {
let fileName = process.env.NODE_ENV === "production" ? "sw-prod.js" : "sw-dev.js";
res.set("Content-Type", "text/javascript").send(await fs.readFile(__dirname + "/static/" + fileName));
})

if(require.main === module) {
server.use(router);
server.listen(process.env.PORT || 35452);
Expand Down
2 changes: 2 additions & 0 deletions static/sw-dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

// sw-dev.js
38 changes: 38 additions & 0 deletions static/sw-prod.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

// sw-prod.js

let cacheName = "RCSv2";

self.addEventListener("install", event => {
console.log("RubiksCubeSimulator ServiceWorker installing");
event.waitUntil((async () => {
let cache = await caches.open(cacheName);

console.log("Opened cache", cacheName)

await cache.addAll([]);

console.log("Finished adding to cache")

return true;
})());
});

self.addEventListener("activate", event => {
console.log("RubiksCubeSimulator ServiceWorker activated");
})

self.addEventListener("fetch", event => {
if(event.request.method !== "GET") return;

event.respondWith((async () => {

const cache = await caches.open(cacheName);
const cachedResponse = await cache.match(event.request);

event.waitUntil(cache.add(await event.request.clone()));

return cachedResponse || fetch(event.request);

})());
});
34 changes: 0 additions & 34 deletions static/sw.js

This file was deleted.

0 comments on commit 2cd35df

Please sign in to comment.