javascript: Rename "browser" packages to "wasm"

This commit is contained in:
Pekka Enberg
2025-09-29 07:46:30 +03:00
parent fda1b89540
commit 57c279e2b0
57 changed files with 360 additions and 1344 deletions

View File

@@ -0,0 +1,56 @@
import { isWebWorker, setupMainThread, setupWebWorker } from "@tursodatabase/database-wasm-common";
import { tursoWasm } from "./wasm-inline.js";
let napiModule = {
exports: {
Database: {} as any,
Opfs: {} as any,
OpfsFile: {} as any,
Statement: {} as any,
connect: {} as any,
initThreadPool: {} as any,
GeneratorHolder: {} as any,
JsDataCompletion: {} as any,
JsProtocolIo: {} as any,
JsProtocolRequestBytes: {} as any,
SyncEngine: {} as any,
DatabaseChangeTypeJs: {} as any,
SyncEngineProtocolVersion: {} as any,
}
};
export let MainWorker = null;
if (isWebWorker()) {
setupWebWorker();
} else {
// Vite has issues with loading wasm modules and worker in dev server: https://github.com/vitejs/vite/issues/8427
// So, the mitigation for dev server only is:
// 1. inline wasm binary in the source code in order to avoid issues with loading it from the file
// 2. use same file as worker entry point
const __wasmFile = await tursoWasm();
napiModule = await setupMainThread(__wasmFile, () => {
const worker = new Worker(import.meta.url, {
name: 'turso-database-sync',
type: 'module',
})
MainWorker = worker;
return worker
});
}
export default napiModule.exports
export const Database = napiModule.exports.Database
export const Statement = napiModule.exports.Statement
export const Opfs = napiModule.exports.Opfs
export const OpfsFile = napiModule.exports.OpfsFile
export const connect = napiModule.exports.connect
export const initThreadPool = napiModule.exports.initThreadPool
export const GeneratorHolder = napiModule.exports.GeneratorHolder
export const JsDataCompletion = napiModule.exports.JsDataCompletion
export const JsProtocolIo = napiModule.exports.JsProtocolIo
export const JsProtocolRequestBytes = napiModule.exports.JsProtocolRequestBytes
export const SyncEngine = napiModule.exports.SyncEngine
export const DatabaseChangeTypeJs = napiModule.exports.DatabaseChangeTypeJs
export const SyncEngineProtocolVersion = napiModule.exports.SyncEngineProtocolVersion