feat(db): use wa-sqlite
This commit is contained in:
parent
c9aaf2ecef
commit
a2bc4115a2
14 changed files with 232 additions and 177 deletions
|
@ -1,7 +1,7 @@
|
|||
import { sql, type NotNull } from "kysely";
|
||||
import { worker, kyselyDb, SELF_ID, DB_FILENAME } from "./db";
|
||||
import { cached } from "../lib/db-cache";
|
||||
import type { MainToWorkerMsg, WorkerToMainMsg } from "~/lib/kysely-official-wasm-worker/type";
|
||||
import type { MainToWorkerMsg, WorkerToMainMsg } from "~/lib/kysely-wasqlite-worker/type";
|
||||
|
||||
export const loadDb = (statements: string[], progressCallback?: (percentage: number) => void): Promise<void> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
@ -23,8 +23,8 @@ export const loadDb = (statements: string[], progressCallback?: (percentage: num
|
|||
}
|
||||
};
|
||||
|
||||
worker.addEventListener("message", endListener);
|
||||
worker.addEventListener("message", progressListener);
|
||||
worker.addEventListener("message", endListener);
|
||||
|
||||
worker.postMessage([4, DB_FILENAME, true, statements] satisfies MainToWorkerMsg);
|
||||
});
|
||||
|
|
|
@ -2,8 +2,8 @@ import { makePersisted } from "@solid-primitives/storage";
|
|||
import { Kysely } from "kysely";
|
||||
import type { DB } from "./db-schema";
|
||||
import { createSignal } from "solid-js";
|
||||
import { OfficialWasmWorkerDialect } from "~/lib/kysely-official-wasm-worker";
|
||||
import wasmWorkerUrl from "~/lib/kysely-official-wasm-worker/worker?url";
|
||||
import { WaSqliteWorkerDialect } from "~/lib/kysely-wasqlite-worker";
|
||||
import wasmWorkerUrl from "~/lib/kysely-wasqlite-worker/worker?url";
|
||||
|
||||
export const SELF_ID = 2;
|
||||
|
||||
|
@ -13,7 +13,7 @@ export const worker = new Worker(wasmWorkerUrl, {
|
|||
type: "module",
|
||||
});
|
||||
|
||||
const dialect = new OfficialWasmWorkerDialect({
|
||||
const dialect = new WaSqliteWorkerDialect({
|
||||
fileName: DB_FILENAME,
|
||||
preferOPFS: true,
|
||||
worker,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue