-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathservice_worker.js
44 lines (36 loc) · 1.16 KB
/
service_worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"use strict";
importScripts(
"https://storage.googleapis.com/workbox-cdn/releases/6.5.4/workbox-sw.js"
);
const { registerRoute, Route } = workbox.routing;
const { CacheFirst } = workbox.strategies;
const scripts_route = new Route(({ request }) => {
return request.destination === 'script';
}, new CacheFirst({
cacheName: "scripts",
}));
const styles_route = new Route(({ request }) => {
return request.destination === 'style';
}, new CacheFirst({
cacheName: "styles",
}));
const fonts_route = new Route(({ request }) => {
return request.destination === 'font';
}, new CacheFirst({
cacheName: "fonts",
}));
const pyodide_cdn_route = new Route(({ request }) => {
return request.destination !== 'script' && request.url.startsWith("https://cdn.jsdelivr.net/pyodide/");
}, new CacheFirst({
cacheName: "pyodide",
}));
const wheels_route = new Route(({ request }) => {
return !request.url.startsWith("https://cdn.jsdelivr.net/pyodide/") && request.url.endsWith(".whl");
}, new CacheFirst({
cacheName: "wheels",
}));
registerRoute(scripts_route);
registerRoute(styles_route);
registerRoute(fonts_route);
registerRoute(pyodide_cdn_route);
registerRoute(wheels_route);