From d74bc1d8e82ef536bd447eeaf673795b4dc0bfb4 Mon Sep 17 00:00:00 2001 From: Paul Date: Tue, 22 Jun 2021 14:22:35 +0100 Subject: [PATCH] Use custom service worker. --- package.json | 3 ++- src/main.tsx | 9 ++++----- src/sw.ts | 11 +++++++++++ tsconfig.json | 2 +- vite.config.ts | 10 ++++++---- 5 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 src/sw.ts diff --git a/package.json b/package.json index 86474dc2..085cb0e9 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "ulid": "^2.3.0", "use-resize-observer": "^7.0.0", "vite": "^2.3.7", - "vite-plugin-pwa": "^0.8.1" + "vite-plugin-pwa": "^0.8.1", + "workbox-precaching": "^6.1.5" } } diff --git a/src/main.tsx b/src/main.tsx index 5415f66a..99a9414d 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,9 +1,4 @@ -import { render } from "preact"; -import "./styles/index.scss"; -import { App } from "./pages/app"; - import { registerSW } from 'virtual:pwa-register' - const updateSW = registerSW({ onNeedRefresh() { // ! FIXME: temp @@ -16,5 +11,9 @@ const updateSW = registerSW({ }, }) +import { render } from "preact"; +import "./styles/index.scss"; +import { App } from "./pages/app"; + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion render(, document.getElementById("app")!); diff --git a/src/sw.ts b/src/sw.ts new file mode 100644 index 00000000..f0f22383 --- /dev/null +++ b/src/sw.ts @@ -0,0 +1,11 @@ +/// +import { precacheAndRoute } from 'workbox-precaching' + +declare let self: ServiceWorkerGlobalScope + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') + self.skipWaiting() +}) + +precacheAndRoute(self.__WB_MANIFEST) diff --git a/tsconfig.json b/tsconfig.json index cdda19f4..8a7df581 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "ESNext", - "lib": ["DOM", "DOM.Iterable", "ESNext"], + "lib": ["DOM", "DOM.Iterable", "ESNext", "WebWorker"], "allowJs": false, "skipLibCheck": true, "esModuleInterop": false, diff --git a/vite.config.ts b/vite.config.ts index dca74704..8da84488 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -23,9 +23,12 @@ export default defineConfig({ plugins: [ preact(), VitePWA({ + srcDir: 'src', + filename: 'sw.ts', + strategies: 'injectManifest', manifest: { - name: "Revolt", - short_name: "Revolt", + name: "REVOLT", + short_name: "REVOLT", description: "User-first, privacy-focused chat platform.", categories: ["messaging"], start_url: "/", @@ -44,8 +47,7 @@ export default defineConfig({ "sizes": "512x512" } ] - }, - workbox: { } + } }), replace({ __GIT_REVISION__: getGitRevision(),