lobe-chat
1import { defaultCache } from '@serwist/next/worker';
2import type { PrecacheEntry, SerwistGlobalConfig } from 'serwist';
3import { Serwist } from 'serwist';
4
5// This declares the value of `injectionPoint` to TypeScript.
6// `injectionPoint` is the string that will be replaced by the
7// actual precache manifest. By default, this string is set to
8// `"self.__SW_MANIFEST"`.
9declare global {
10interface WorkerGlobalScope extends SerwistGlobalConfig {
11__SW_MANIFEST: (PrecacheEntry | string)[] | undefined;
12}
13}
14
15// eslint-disable-next-line no-undef
16declare const self: ServiceWorkerGlobalScope;
17
18const serwist = new Serwist({
19clientsClaim: true,
20navigationPreload: true,
21precacheEntries: self.__SW_MANIFEST,
22runtimeCaching: defaultCache,
23skipWaiting: true,
24});
25
26serwist.addEventListeners();
27