diff options
author | crupest <crupest@outlook.com> | 2020-07-26 15:02:55 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-07-26 15:02:55 +0800 |
commit | b78d21a524f7a11ad29b4bd230f23825f80c3ed7 (patch) | |
tree | 88bfe8d4c5298f61a90c501933784885ec9ce77f /Timeline/ClientApp/src/sw/sw.ts | |
parent | 886ab2a222bc503156542988edc7be5062f6e7b1 (diff) | |
download | timeline-b78d21a524f7a11ad29b4bd230f23825f80c3ed7.tar.gz timeline-b78d21a524f7a11ad29b4bd230f23825f80c3ed7.tar.bz2 timeline-b78d21a524f7a11ad29b4bd230f23825f80c3ed7.zip |
Merge front end repo
Diffstat (limited to 'Timeline/ClientApp/src/sw/sw.ts')
-rw-r--r-- | Timeline/ClientApp/src/sw/sw.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/sw/sw.ts b/Timeline/ClientApp/src/sw/sw.ts new file mode 100644 index 00000000..9d62757a --- /dev/null +++ b/Timeline/ClientApp/src/sw/sw.ts @@ -0,0 +1,28 @@ +import { precacheAndRoute, matchPrecache } from 'workbox-precaching';
+import { setDefaultHandler } from 'workbox-routing';
+import { NetworkOnly } from 'workbox-strategies';
+
+declare let self: ServiceWorkerGlobalScope;
+
+self.addEventListener('message', (event) => {
+ if (event.data && (event.data as { type: string }).type === 'SKIP_WAITING') {
+ void self.skipWaiting();
+ }
+});
+
+precacheAndRoute(self.__WB_MANIFEST);
+
+const networkOnly = new NetworkOnly();
+
+setDefaultHandler((options) => {
+ const { request, url } = options;
+ if (url && url.pathname.startsWith('/api/')) {
+ return networkOnly.handle(options);
+ }
+
+ if (request instanceof Request && request.destination === 'document')
+ return matchPrecache('/index.html').then((r) =>
+ r == null ? Response.error() : r
+ );
+ else return networkOnly.handle(options);
+});
|