feat(db): use wa-sqlite

This commit is contained in:
Samuel 2025-01-20 17:51:56 +01:00
parent c9aaf2ecef
commit a2bc4115a2
14 changed files with 232 additions and 177 deletions

View file

@ -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);
});

View file

@ -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,