import 'package:drift/drift.dart'; import 'package:drift/wasm.dart'; import 'package:http/http.dart' as http; import 'package:sqlite3/wasm.dart'; Future> getSqliteConnectionArgs() async => {}; QueryExecutor openSqliteConnectionWithArgs(Map args) => openSqliteConnection(); QueryExecutor openSqliteConnection() { return LazyDatabase(() async { // Load wasm bundle final response = await http.get(Uri.parse("sqlite3.wasm")); // Create a virtual file system backed by IndexedDb with everything in // `/drift/my_app/` being persisted. final fs = await IndexedDbFileSystem.open(dbName: "nc-photos"); final sqlite3 = await WasmSqlite3.load( response.bodyBytes, SqliteEnvironment(fileSystem: fs), ); // Then, open a database inside that persisted folder. return WasmDatabase( sqlite3: sqlite3, path: "/drift/nc-photos/app.db", // logStatements: true, ); }); }