From 04ce27a9daf4462a8e966220a6a107f0d313f6aa Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Fri, 19 Jan 2024 17:23:51 +0200 Subject: [PATCH] Make Wasm createClient() sync Fixes #153 --- packages/libsql-client-wasm/package.json | 24 +++++++------------ packages/libsql-client-wasm/src/wasm.ts | 15 ++++-------- .../libsql-client-wasm/tsconfig.base.json | 3 ++- .../tsconfig.build-cjs.json | 9 ------- packages/libsql-core/src/api.ts | 5 ---- packages/libsql-core/src/config.ts | 3 --- 6 files changed, 14 insertions(+), 45 deletions(-) delete mode 100644 packages/libsql-client-wasm/tsconfig.build-cjs.json diff --git a/packages/libsql-client-wasm/package.json b/packages/libsql-client-wasm/package.json index e136d72..faa1e3d 100644 --- a/packages/libsql-client-wasm/package.json +++ b/packages/libsql-client-wasm/package.json @@ -22,7 +22,7 @@ ], "license": "MIT", "type": "module", - "main": "lib-cjs/wasm.js", + "main": "lib-esm/wasm.js", "types": "lib-esm/wasm.d.ts", "exports": { ".": { @@ -35,28 +35,23 @@ "wasm": "./lib-esm/wasm.js", "browser": "./lib-esm/web.js", "default": "./lib-esm/wasm.js" - }, - "require": "./lib-cjs/wasm.js" + } }, "./http": { "types": "./lib-esm/http.d.ts", - "import": "./lib-esm/http.js", - "require": "./lib-cjs/http.js" + "import": "./lib-esm/http.js" }, "./ws": { "types": "./lib-esm/ws.d.ts", - "import": "./lib-esm/ws.js", - "require": "./lib-cjs/ws.js" + "import": "./lib-esm/ws.js" }, "./wasm": { "types": "./lib-esm/wasm.d.ts", - "import": "./lib-esm/wasm.js", - "require": "./lib-cjs/wasm.js" + "import": "./lib-esm/wasm.js" }, "./web": { "types": "./lib-esm/web.d.ts", - "import": "./lib-esm/web.js", - "require": "./lib-cjs/web.js" + "import": "./lib-esm/web.js" } }, "typesVersions": { @@ -79,16 +74,13 @@ } }, "files": [ - "lib-cjs/**", "lib-esm/**" ], "scripts": { "prepublishOnly": "npm run build", - "prebuild": "rm -rf ./lib-cjs ./lib-esm", - "build": "npm run build:cjs && npm run build:esm", - "build:cjs": "tsc -p tsconfig.build-cjs.json", + "prebuild": "rm -rf ./lib-esm", + "build": "npm run build:esm", "build:esm": "tsc -p tsconfig.build-esm.json", - "postbuild": "cp package-cjs.json ./lib-cjs/package.json", "test": "jest --runInBand", "typecheck": "tsc --noEmit", "typedoc": "rm -rf ./docs && typedoc" diff --git a/packages/libsql-client-wasm/src/wasm.ts b/packages/libsql-client-wasm/src/wasm.ts index e8e4022..04e26ee 100644 --- a/packages/libsql-client-wasm/src/wasm.ts +++ b/packages/libsql-client-wasm/src/wasm.ts @@ -13,12 +13,14 @@ import { supportedUrlLink, transactionModeToBegin, ResultSetImpl } from "@libsql export * from "@libsql/core/api"; -export async function createClient(config: Config): Promise { +const sqlite3 = await sqlite3InitModule(); + +export function createClient(config: Config): Client { return _createClient(expandConfig(config, true)); } /** @private */ -export async function _createClient(config: ExpandedConfig): Promise { +export function _createClient(config: ExpandedConfig): Client { if (config.scheme !== "file") { throw new LibsqlError( `URL scheme ${JSON.stringify(config.scheme + ":")} is not supported by the local sqlite3 client. ` + @@ -54,15 +56,6 @@ export async function _createClient(config: ExpandedConfig): Promise { syncUrl: config.syncUrl, }; - const initOptions: InitOptions = {}; - if(config.sqliteWasmPath) { - initOptions.locateFile = function() { - return config.sqliteWasmPath!; - }; - } - - const sqlite3 = await sqlite3InitModule(initOptions); - const db: Database = new sqlite3.oo1.DB('/mydb.sqlite3', 'ct'); executeStmt(db, "SELECT 1 AS checkThatTheDatabaseCanBeOpened", config.intMode); diff --git a/packages/libsql-client-wasm/tsconfig.base.json b/packages/libsql-client-wasm/tsconfig.base.json index e1e23ff..27fac27 100644 --- a/packages/libsql-client-wasm/tsconfig.base.json +++ b/packages/libsql-client-wasm/tsconfig.base.json @@ -1,8 +1,9 @@ { "compilerOptions": { + "module": "es2022", "moduleResolution": "node", "lib": ["esnext", "dom"], - "target": "esnext", + "target": "es2022", "esModuleInterop": true, "isolatedModules": true, "rootDir": "src/", diff --git a/packages/libsql-client-wasm/tsconfig.build-cjs.json b/packages/libsql-client-wasm/tsconfig.build-cjs.json deleted file mode 100644 index 857027a..0000000 --- a/packages/libsql-client-wasm/tsconfig.build-cjs.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "module": "commonjs", - "declaration": false, - "outDir": "./lib-cjs/" - } -} - diff --git a/packages/libsql-core/src/api.ts b/packages/libsql-core/src/api.ts index 6db67a2..018aeb3 100644 --- a/packages/libsql-core/src/api.ts +++ b/packages/libsql-core/src/api.ts @@ -40,11 +40,6 @@ export interface Config { * with the Web `Response`. */ fetch?: Function; - - /** - * Location of the sqlite3.wasm binary path. - */ - sqliteWasmPath?: string; } /** Representation of integers from database as JavaScript values. See {@link Config.intMode}. */ diff --git a/packages/libsql-core/src/config.ts b/packages/libsql-core/src/config.ts index 9b671e3..994c431 100644 --- a/packages/libsql-core/src/config.ts +++ b/packages/libsql-core/src/config.ts @@ -13,7 +13,6 @@ export interface ExpandedConfig { syncUrl: string | undefined; intMode: IntMode; fetch: Function | undefined; - sqliteWasmPath?: string; } export type ExpandedScheme = "wss" | "ws" | "https" | "http" | "file"; @@ -47,7 +46,6 @@ export function expandConfig(config: Config, preferHttp: boolean): ExpandedConfi tls: false, authToken: undefined, authority: undefined, - sqliteWasmPath: config.sqliteWasmPath, }; } @@ -119,6 +117,5 @@ export function expandConfig(config: Config, preferHttp: boolean): ExpandedConfi syncUrl, intMode, fetch: config.fetch, - sqliteWasmPath: config.sqliteWasmPath, }; }