donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
18 lines • 902 B
TypeScript
import Database from 'better-sqlite3';
/**
* Returns the singleton SQLite database instance.
* Creates the database on first call and initializes it with proper settings.
*
* When multiple processes (e.g. Playwright workers) start concurrently, they
* can all race into this function at the same time. SQLite's built-in busy
* timeout is insufficient here because `PRAGMA journal_mode = WAL` requires
* an exclusive file lock that is not retryable via the busy handler. We use
* a cross-process file lock (`proper-lockfile`) to serialize initialization
* so only one process creates/configures the database at a time.
*/
export declare function getDonobuSqliteDatabase(): Promise<Database.Database>;
/**
* Closes the database connection. Should be called during application shutdown.
*/
export declare function closeDonobuSqliteDatabase(): void;
//# sourceMappingURL=DonobuSqliteDb.d.ts.map