mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-17 08:34:19 +01:00
- now, most of the work is happening on the main thread - for database in browser, we still have dedicated WebWorker - but it is used only for OPFS access and only for that - for syn in browser we still offload sync operations to the WebWorker
25 lines
881 B
TypeScript
25 lines
881 B
TypeScript
import { setupMainThread } from "@tursodatabase/database-browser-common";
|
|
//@ts-ignore
|
|
import TursoWorker from "./worker.js?worker&inline";
|
|
|
|
const __wasmUrl = new URL('./turso.wasm32-wasi.wasm', import.meta.url).href;
|
|
const __wasmFile = await fetch(__wasmUrl).then((res) => res.arrayBuffer())
|
|
|
|
export let MainWorker = null;
|
|
const napiModule = await setupMainThread(__wasmFile, () => {
|
|
const worker = new TursoWorker({
|
|
name: 'turso-database',
|
|
type: 'module',
|
|
})
|
|
MainWorker = worker;
|
|
return worker
|
|
});
|
|
|
|
export default napiModule.exports
|
|
export const Database = napiModule.exports.Database
|
|
export const Opfs = napiModule.exports.Opfs
|
|
export const OpfsFile = napiModule.exports.OpfsFile
|
|
export const Statement = napiModule.exports.Statement
|
|
export const connectDbAsync = napiModule.exports.connectDbAsync
|
|
export const initThreadPool = napiModule.exports.initThreadPool
|