mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-21 18:24:20 +01:00
javascript: Rename "browser" packages to "wasm"
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user