summaryrefslogtreecommitdiff
path: root/packages/sw/src/sw.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sw/src/sw.ts')
-rw-r--r--packages/sw/src/sw.ts13
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/sw/src/sw.ts b/packages/sw/src/sw.ts
index 2783f2bfb5..1f085c7392 100644
--- a/packages/sw/src/sw.ts
+++ b/packages/sw/src/sw.ts
@@ -21,6 +21,10 @@ globalThis.addEventListener('activate', ev => {
);
});
+function offlineContentHTML(): string {
+ return `<!doctype html>Offline. Service Worker @${_VERSION_} <button onclick="location.reload()">reload</button>`
+}
+
globalThis.addEventListener('fetch', ev => {
let isHTMLRequest = false;
if (ev.request.headers.get('sec-fetch-dest') === 'document') {
@@ -34,7 +38,14 @@ globalThis.addEventListener('fetch', ev => {
if (!isHTMLRequest) return;
ev.respondWith(
fetch(ev.request)
- .catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 })),
+ .catch(() => {
+ return new Response(offlineContentHTML(), {
+ status: 200,
+ headers: {
+ 'content-type': 'text/html',
+ },
+ });
+ }),
);
});