initializeSqlJs
Future<
Initialize sql.js. Call once at startup.
Returns a SqlJsRuntime that must be passed to openDatabase.
Implementation
Future<Result<SqlJsRuntime, String>> initializeSqlJs() async {
try {
final initFn = requireModule('sql.js') as JSFunction;
final promise = initFn.callAsFunction();
if (promise == null) {
return const Error('sql.js init returned no promise');
}
final namespace = await (promise as JSPromise<JSAny?>).toDart;
if (namespace == null) {
return const Error('sql.js init resolved to null');
}
final sqlJs = namespace as _SqlJsNamespace;
return Success((databaseConstructor: sqlJs.databaseConstructor));
} catch (e) {
return Error('Failed to initialize sql.js: $e');
}
}