Loading packages/chat/eslint.config.js +4 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,10 @@ export default defineConfig([ }, ], languageOptions: { parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, ecmaVersion: 2020, globals: globals.browser, }, Loading packages/chat/lib/sw.ts 0 → 100644 +24 −0 Original line number Diff line number Diff line const swSelf = self as unknown as ServiceWorkerGlobalScope; swSelf.addEventListener("install", (event) => { event.waitUntil(swSelf.skipWaiting()); }); swSelf.addEventListener("activate", (event) => { event.waitUntil(swSelf.clients.claim()); }); swSelf.addEventListener("fetch", (event: FetchEvent) => { const newRequest = new Request(event.request, { headers: { Authorization: `*** abc`, }, mode: "cors", }); postMessage("hello!"); event.respondWith(fetch(newRequest)); }); console.log("servidce worker online"); packages/chat/package.json +3 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,9 @@ "./Yapper": { "default": "./dist/Yapper.js", "types": "./dist/components/Yapper.d.ts" }, "./sw": { "default": "./dist/sw.js" } }, "files": [ Loading packages/chat/src/main.tsx +23 −6 Original line number Diff line number Diff line import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import "./index.css"; import App from "./App.tsx"; import swUrl from "@sc07-canvas/chat/sw?url"; createRoot(document.getElementById('root')!).render( createRoot(document.getElementById("root")!).render( <StrictMode> <App /> </StrictMode>, ) ); if ("serviceWorker" in navigator) { window.addEventListener("load", () => { navigator.serviceWorker.register(swUrl).then((register) => { navigator.serviceWorker.addEventListener("message", (ev) => { console.log("SERVICE WORKER:", ev); }); navigator.serviceWorker.addEventListener("messageerror", (ev) => { console.error("SERVICE WORKER:", ev); }); register.update().then(() => { console.log("serviceWorker update"); }); }); }); } packages/chat/tsconfig.json +2 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ "references": [ { "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }, { "path": "./tsconfig.lib.json" } { "path": "./tsconfig.lib.json" }, { "path": "./tsconfig.sw.json" } ] } Loading
packages/chat/eslint.config.js +4 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,10 @@ export default defineConfig([ }, ], languageOptions: { parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, ecmaVersion: 2020, globals: globals.browser, }, Loading
packages/chat/lib/sw.ts 0 → 100644 +24 −0 Original line number Diff line number Diff line const swSelf = self as unknown as ServiceWorkerGlobalScope; swSelf.addEventListener("install", (event) => { event.waitUntil(swSelf.skipWaiting()); }); swSelf.addEventListener("activate", (event) => { event.waitUntil(swSelf.clients.claim()); }); swSelf.addEventListener("fetch", (event: FetchEvent) => { const newRequest = new Request(event.request, { headers: { Authorization: `*** abc`, }, mode: "cors", }); postMessage("hello!"); event.respondWith(fetch(newRequest)); }); console.log("servidce worker online");
packages/chat/package.json +3 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,9 @@ "./Yapper": { "default": "./dist/Yapper.js", "types": "./dist/components/Yapper.d.ts" }, "./sw": { "default": "./dist/sw.js" } }, "files": [ Loading
packages/chat/src/main.tsx +23 −6 Original line number Diff line number Diff line import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import "./index.css"; import App from "./App.tsx"; import swUrl from "@sc07-canvas/chat/sw?url"; createRoot(document.getElementById('root')!).render( createRoot(document.getElementById("root")!).render( <StrictMode> <App /> </StrictMode>, ) ); if ("serviceWorker" in navigator) { window.addEventListener("load", () => { navigator.serviceWorker.register(swUrl).then((register) => { navigator.serviceWorker.addEventListener("message", (ev) => { console.log("SERVICE WORKER:", ev); }); navigator.serviceWorker.addEventListener("messageerror", (ev) => { console.error("SERVICE WORKER:", ev); }); register.update().then(() => { console.log("serviceWorker update"); }); }); }); }
packages/chat/tsconfig.json +2 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ "references": [ { "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }, { "path": "./tsconfig.lib.json" } { "path": "./tsconfig.lib.json" }, { "path": "./tsconfig.sw.json" } ] }