diff options
Diffstat (limited to 'packages/sw/src/sw.ts')
| -rw-r--r-- | packages/sw/src/sw.ts | 13 |
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', + }, + }); + }), ); }); |