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
29 lines
932 B
TypeScript
29 lines
932 B
TypeScript
import { DatabaseOpts, SqliteError, } from "@tursodatabase/database-common"
|
|
import { Database, connect as promiseConnect } from "./promise.js";
|
|
import { initThreadPool, MainWorker, connectDbAsync } from "./index-vite-dev-hack.js";
|
|
|
|
/**
|
|
* Creates a new database connection asynchronously.
|
|
*
|
|
* @param {string} path - Path to the database file.
|
|
* @param {Object} opts - Options for database behavior.
|
|
* @returns {Promise<Database>} - A promise that resolves to a Database instance.
|
|
*/
|
|
async function connect(path: string, opts: DatabaseOpts = {}): Promise<Database> {
|
|
const init = async () => {
|
|
await initThreadPool();
|
|
if (MainWorker == null) {
|
|
throw new Error("panic: MainWorker is not initialized");
|
|
}
|
|
return MainWorker;
|
|
};
|
|
return await promiseConnect(
|
|
path,
|
|
opts,
|
|
connectDbAsync,
|
|
init
|
|
);
|
|
}
|
|
|
|
export { connect, Database, SqliteError }
|