mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-08-24 12:24:01 +02:00
The browser host now stores data through yaak-models compiled to wasm — the same queries, migrations, cascade rules, duplicate naming and first-run bootstrap the desktop and CLI use — instead of a TypeScript port of them. - crates/yaak-web: the wasm crate. boot() registers an IndexedDB-backed VFS and calls init_standalone; rpc(cmd, payload, label) answers the models_* commands via ClientDb and returns the model_writes it caused; blob get/put through blob_manager. Built like yaak-templates (pkg/ committed); the build script keeps pkg/ and says so when no wasm-capable clang is present, so a desktop bootstrap never depends on one. - models_ops moves from crates/yaak into yaak-models so the wasm crate can use it without the send engine. - The database lives in a SharedWorker (packages/platform/src/web/worker.ts): one process holds the data and pushes writes to every tab, as on the desktop. Where SharedWorker is missing or its script cannot be fetched, a dedicated worker guarded by a Web Lock takes over and a second tab is told so. The worker imports the wasm lazily so a tab's connect is answered instantly; the tab reconnects if it isn't. - packages/platform/src/web loses models.ts, schema.ts, db.ts and the BroadcastChannel; commands.ts forwards model commands to the worker and keeps the fixed answers and refusals. Verified in Chrome, dev and production builds: bootstrap, CRUD across every model type, serde defaults, engine-format ids, Rust copy naming, folder cascade with per-descendant events, single-event workspace delete, reload persistence, two tabs coherent, Send declined with a toast, 8/8 reloads rendering in ~100 ms.
33 lines
2.2 KiB
TypeScript
33 lines
2.2 KiB
TypeScript
/* tslint:disable */
|
|
/* eslint-disable */
|
|
export const memory: WebAssembly.Memory;
|
|
export const blob_delete: (a: number, b: number) => [number, number];
|
|
export const blob_get: (a: number, b: number) => [number, number, number, number];
|
|
export const blob_put: (a: number, b: number, c: number, d: number) => [number, number];
|
|
export const boot: () => any;
|
|
export const rpc: (a: number, b: number, c: any, d: number, e: number) => [number, number, number];
|
|
export const rust_sqlite_wasm_abort: () => void;
|
|
export const rust_sqlite_wasm_assert_fail: (a: number, b: number, c: number, d: number) => void;
|
|
export const rust_sqlite_wasm_calloc: (a: number, b: number) => number;
|
|
export const rust_sqlite_wasm_free: (a: number) => void;
|
|
export const rust_sqlite_wasm_getentropy: (a: number, b: number) => number;
|
|
export const rust_sqlite_wasm_localtime: (a: number) => number;
|
|
export const rust_sqlite_wasm_malloc: (a: number) => number;
|
|
export const rust_sqlite_wasm_realloc: (a: number, b: number) => number;
|
|
export const sqlite3_os_end: () => number;
|
|
export const sqlite3_os_init: () => number;
|
|
export const wasm_bindgen__convert__closures_____invoke__hf84d53817e0238b4: (a: number, b: number, c: any) => [number, number];
|
|
export const wasm_bindgen__convert__closures_____invoke__ha579407f9663b071: (a: number, b: number, c: any) => [number, number];
|
|
export const wasm_bindgen__convert__closures_____invoke__h2c72ca09e851b7f3: (a: number, b: number, c: any, d: any) => void;
|
|
export const wasm_bindgen__convert__closures_____invoke__h7e06bb925b918fbb: (a: number, b: number, c: any) => void;
|
|
export const wasm_bindgen__convert__closures_____invoke__h87640adb2bbfa2fc: (a: number, b: number) => void;
|
|
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
export const __wbindgen_exn_store: (a: number) => void;
|
|
export const __externref_table_alloc: () => number;
|
|
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
export const __wbindgen_destroy_closure: (a: number, b: number) => void;
|
|
export const __externref_table_dealloc: (a: number) => void;
|
|
export const __wbindgen_start: () => void;
|