mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-04 17:04:18 +01:00
move compute to the main thread for browser and node
- 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
This commit is contained in:
@@ -15,26 +15,6 @@ export declare class Database {
|
||||
get path(): string
|
||||
/** Returns whether the database connection is open. */
|
||||
get open(): boolean
|
||||
/**
|
||||
* Executes a batch of SQL statements on main thread
|
||||
*
|
||||
* # Arguments
|
||||
*
|
||||
* * `sql` - The SQL statements to execute.
|
||||
*
|
||||
* # Returns
|
||||
*/
|
||||
batchSync(sql: string): void
|
||||
/**
|
||||
* Executes a batch of SQL statements outside of main thread
|
||||
*
|
||||
* # Arguments
|
||||
*
|
||||
* * `sql` - The SQL statements to execute.
|
||||
*
|
||||
* # Returns
|
||||
*/
|
||||
batchAsync(sql: string): Promise<void>
|
||||
/**
|
||||
* Prepares a statement for execution.
|
||||
*
|
||||
@@ -93,6 +73,16 @@ export declare class Database {
|
||||
ioLoopAsync(): Promise<void>
|
||||
}
|
||||
|
||||
export declare class Opfs {
|
||||
constructor()
|
||||
connectDb(path: string, opts?: DatabaseOpts | undefined | null): Promise<unknown>
|
||||
complete(completionNo: number, result: number): void
|
||||
}
|
||||
|
||||
export declare class OpfsFile {
|
||||
|
||||
}
|
||||
|
||||
/** A prepared statement. */
|
||||
export declare class Statement {
|
||||
reset(): void
|
||||
@@ -149,6 +139,12 @@ export declare class Statement {
|
||||
export interface DatabaseOpts {
|
||||
tracing?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* turso-db in the the browser requires explicit thread pool initialization
|
||||
* so, we just put no-op task on the thread pool and force emnapi to allocate web worker
|
||||
*/
|
||||
export declare function initThreadPool(): Promise<unknown>
|
||||
export declare class GeneratorHolder {
|
||||
resumeSync(error?: string | undefined | null): GeneratorResponse
|
||||
resumeAsync(error?: string | undefined | null): Promise<unknown>
|
||||
@@ -220,7 +216,7 @@ export type DatabaseRowTransformResultJs =
|
||||
export type GeneratorResponse =
|
||||
| { type: 'IO' }
|
||||
| { type: 'Done' }
|
||||
| { type: 'SyncEngineStats', operations: number, mainWal: number, revertWal: number, lastPullUnixTime: number, lastPushUnixTime?: number }
|
||||
| { type: 'SyncEngineStats', operations: number, mainWal: number, revertWal: number, lastPullUnixTime: number, lastPushUnixTime?: number, revision?: string }
|
||||
|
||||
export type JsProtocolRequest =
|
||||
| { type: 'Http', method: string, path: string, body?: Array<number>, headers: Array<[string, string]> }
|
||||
|
||||
Reference in New Issue
Block a user