Skip to content
This repository was archived by the owner on Feb 5, 2022. It is now read-only.

Commit 767f249

Browse files
authored
Merge pull request #384 from openforge/fix/sw-issue
Moved sw into www
2 parents 50ffc8b + 11daf48 commit 767f249

File tree

4 files changed

+56
-6
lines changed

4 files changed

+56
-6
lines changed

src/pages/open-forge-app/open-forge-app.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export class OpenForgeApp {
7575
}
7676

7777
listenForNewServiceWorker = window.addEventListener('load', () => {
78-
navigator.serviceWorker.register('/sw.js').then(registration => {
78+
navigator.serviceWorker.register('./sw.js').then(registration => {
7979
// Track updates to the Service Worker
8080
if (!navigator.serviceWorker.controller) {
8181
// The window client isn't currently controlled so it's a new service worker that will activate immediately

sw.js renamed to src/sw.js

File renamed without changes.

stencil.config.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@ exports.config = {
1919
{
2020
type: 'www',
2121
serviceWorker: {
22-
swSrc: 'sw.js',
23-
globPatterns: [
24-
'**/*.{html,js,css,json,ico,png,jpg,es5}'
25-
]
22+
swSrc: './src/sw.js'
2623
}
2724
}
2825
],
2926
copy: [
30-
{ src: 'robots.txt' }
27+
{ src: 'robots.txt' },
28+
{ src: 'sw.js' }
3129
]
3230
};
3331

www/sw.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
importScripts('https://storage.googleapis.com/workbox-cdn/releases/4.3.0/workbox-sw.js');
2+
3+
// your custom service worker code
4+
self.workbox.routing.registerRoute(
5+
/\.(?:png|gif|jpg|jpeg|svg)$/,
6+
workbox.strategies.cacheFirst({
7+
cacheName: 'images',
8+
plugins: [
9+
new workbox.expiration.Plugin({
10+
maxEntries: 60,
11+
maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days
12+
}),
13+
],
14+
}),
15+
);
16+
17+
self.workbox.routing.registerRoute(
18+
/\.(?:js|css)$/,
19+
workbox.strategies.staleWhileRevalidate({
20+
cacheName: 'static-resources',
21+
}),
22+
);
23+
24+
workbox.routing.registerRoute(
25+
new RegExp('/api/'),
26+
workbox.strategies.staleWhileRevalidate({
27+
plugins: [
28+
new workbox.broadcastUpdate.Plugin('api-updates')
29+
]
30+
})
31+
);
32+
33+
self.addEventListener('message', (event) => {
34+
if (!event.data){
35+
return;
36+
}
37+
38+
switch (event.data) {
39+
case 'skipWaiting':
40+
self.skipWaiting();
41+
break;
42+
default:
43+
// NOOP
44+
break;
45+
}
46+
});
47+
48+
self.addEventListener('install', (event) => {
49+
self.skipWaiting();
50+
})
51+
52+
self.workbox.precaching.precacheAndRoute([]);

0 commit comments

Comments
 (0)