openDatabase
Result<
Open a better-sqlite3 database.
Automatically enables WAL mode and sets busy timeout.
Implementation
Result<Database, String> openDatabase(String path) {
try {
final betterSqlite3 = requireModule('better-sqlite3');
final dbClass = betterSqlite3 as JSFunction;
final jsDb = dbClass.callAsConstructor<JSObject>(path.toJS);
// Enable WAL mode for concurrency
_callPragma(jsDb, 'journal_mode = WAL');
_callPragma(jsDb, 'busy_timeout = 5000');
return Success(_createDatabase(jsDb));
} catch (e) {
return Error('Failed to open database: $e');
}
}