make controller update config automatically upon init

This commit is contained in:
Percs 2025-02-06 11:00:56 -06:00
parent 6427d30ab4
commit 4821fedd89
3 changed files with 29 additions and 14 deletions

24
pnpm-lock.yaml generated
View file

@ -1059,8 +1059,8 @@ packages:
ee-first@1.1.1: ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
electron-to-chromium@1.5.91: electron-to-chromium@1.5.93:
resolution: {integrity: sha512-sNSHHyq048PFmZY4S90ax61q+gLCs0X0YmcOII9wG9S2XwbVr+h4VW2wWhnbp/Eys3cCwTxVF292W3qPaxIapQ==} resolution: {integrity: sha512-M+29jTcfNNoR9NV7la4SwUqzWAxEwnc7ThA5e1m6LRSotmpfpCpLcIfgtSCVL+MllNLgAyM/5ru86iMRemPzDQ==}
emoji-regex@8.0.0: emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -1273,8 +1273,8 @@ packages:
resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
find-my-way@9.1.0: find-my-way@9.2.0:
resolution: {integrity: sha512-Y5jIsuYR4BwWDYYQ2A/RWWE6gD8a0FMgtU+HOq1WKku+Cwdz8M1v8wcAmRXXM1/iqtoqg06v+LjAxMYbCjViMw==} resolution: {integrity: sha512-d3uCir8Hmg7W1Ywp8nKf2lJJYU9Nwinvo+1D39Dn09nz65UKXIxUh7j7K8zeWhxqe1WrkS7FJyON/Q/3lPoc6w==}
engines: {node: '>=14'} engines: {node: '>=14'}
find-up@5.0.0: find-up@5.0.0:
@ -2262,8 +2262,8 @@ packages:
uglify-js: uglify-js:
optional: true optional: true
terser@5.37.0: terser@5.38.1:
resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} resolution: {integrity: sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==}
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
@ -3408,7 +3408,7 @@ snapshots:
browserslist@4.24.4: browserslist@4.24.4:
dependencies: dependencies:
caniuse-lite: 1.0.30001697 caniuse-lite: 1.0.30001697
electron-to-chromium: 1.5.91 electron-to-chromium: 1.5.93
node-releases: 2.0.19 node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4) update-browserslist-db: 1.1.2(browserslist@4.24.4)
@ -3642,7 +3642,7 @@ snapshots:
ee-first@1.1.1: {} ee-first@1.1.1: {}
electron-to-chromium@1.5.91: {} electron-to-chromium@1.5.93: {}
emoji-regex@8.0.0: {} emoji-regex@8.0.0: {}
@ -3879,7 +3879,7 @@ snapshots:
abstract-logging: 2.0.1 abstract-logging: 2.0.1
avvio: 9.1.0 avvio: 9.1.0
fast-json-stringify: 6.0.1 fast-json-stringify: 6.0.1
find-my-way: 9.1.0 find-my-way: 9.2.0
light-my-request: 6.5.1 light-my-request: 6.5.1
pino: 9.6.0 pino: 9.6.0
process-warning: 4.0.1 process-warning: 4.0.1
@ -3930,7 +3930,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
find-my-way@9.1.0: find-my-way@9.2.0:
dependencies: dependencies:
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
fast-querystring: 1.1.2 fast-querystring: 1.1.2
@ -4871,10 +4871,10 @@ snapshots:
jest-worker: 27.5.1 jest-worker: 27.5.1
schema-utils: 4.3.0 schema-utils: 4.3.0
serialize-javascript: 6.0.2 serialize-javascript: 6.0.2
terser: 5.37.0 terser: 5.38.1
webpack: 5.97.1 webpack: 5.97.1
terser@5.37.0: terser@5.38.1:
dependencies: dependencies:
'@jridgewell/source-map': 0.3.6 '@jridgewell/source-map': 0.3.6
acorn: 8.14.0 acorn: 8.14.0

View file

@ -63,6 +63,10 @@ export class ScramjetController {
loadCodecs(); loadCodecs();
await this.openIDB(); await this.openIDB();
navigator.serviceWorker?.controller.postMessage({
scramjet$type: "loadConfig",
config: $scramjet.config,
});
dbg.log("config loaded"); dbg.log("config loaded");
} }

View file

@ -30,7 +30,6 @@ export class ScramjetServiceWorker extends EventTarget {
cookies.onsuccess = () => { cookies.onsuccess = () => {
if (cookies.result) { if (cookies.result) {
this.cookieStore.load(cookies.result); this.cookieStore.load(cookies.result);
dbg.log("Loaded cookies from IDB!");
} }
}; };
}; };
@ -51,6 +50,10 @@ export class ScramjetServiceWorker extends EventTarget {
const store = tx.objectStore("cookies"); const store = tx.objectStore("cookies");
store.put(JSON.parse(this.cookieStore.dump()), "cookies"); store.put(JSON.parse(this.cookieStore.dump()), "cookies");
} }
if (data.scramjet$type === "loadConfig") {
this.config = data.config;
}
}); });
} }
@ -109,12 +112,20 @@ type CookieMessage = {
url: string; url: string;
}; };
type ConfigMessage = {
scramjet$type: "loadConfig";
config: ScramjetConfig;
};
type MessageCommon = { type MessageCommon = {
scramjet$type: string; scramjet$type: string;
scramjet$token: number; scramjet$token: number;
}; };
type MessageTypeC2W = RegisterServiceWorkerMessage | CookieMessage; type MessageTypeC2W =
| RegisterServiceWorkerMessage
| CookieMessage
| ConfigMessage;
type MessageTypeW2C = CookieMessage; type MessageTypeW2C = CookieMessage;
// c2w: client to (service) worker // c2w: client to (service) worker