openDatabase

Result<Database, String> openDatabase(

  1. String path
)

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'); } }