File tree Expand file tree Collapse file tree 6 files changed +54
-10
lines changed Expand file tree Collapse file tree 6 files changed +54
-10
lines changed Original file line number Diff line number Diff line change @@ -207,8 +207,18 @@ public function getFiles(): array
207207 ],
208208 [
209209 'scope ' => 'default ' ,
210- 'destination ' => '/lib/src/offline_db.dart ' ,
211- 'template ' => 'flutter/lib/src/offline_db.dart.twig ' ,
210+ 'destination ' => '/lib/src/offline_db_io.dart ' ,
211+ 'template ' => 'flutter/lib/src/offline_db_io.dart.twig ' ,
212+ ],
213+ [
214+ 'scope ' => 'default ' ,
215+ 'destination ' => '/lib/src/offline_db_stub.dart ' ,
216+ 'template ' => 'flutter/lib/src/offline_db_stub.dart.twig ' ,
217+ ],
218+ [
219+ 'scope ' => 'default ' ,
220+ 'destination ' => '/lib/src/offline_db_web.dart ' ,
221+ 'template ' => 'flutter/lib/src/offline_db_web.dart.twig ' ,
212222 ],
213223 [
214224 'scope ' => 'default ' ,
Original file line number Diff line number Diff line change @@ -10,7 +10,9 @@ import 'package:sembast/utils/value_utils.dart';
1010
1111import 'enums.dart';
1212import 'exception.dart';
13- import 'offline_db.dart';
13+ import 'offline_db_stub.dart'
14+ if (dart.library.html) 'offline_db_web.dart'
15+ if (dart.library.io) 'offline_db_io.dart';
1416import 'response.dart';
1517
1618class AccessTimestamp {
Original file line number Diff line number Diff line change 1- import 'package:flutter/foundation.dart';
1+ import 'dart:io';
2+
23import 'package:sembast/sembast.dart';
34import 'package:sembast_sqflite/sembast_sqflite.dart';
4- import 'package:sembast_web/sembast_web.dart';
55import 'package:sqflite/sqflite.dart' as sqflite;
6+ import 'package:sqflite_common_ffi/sqflite_ffi.dart';
67
78class OfflineDatabase {
89 static final OfflineDatabase instance = OfflineDatabase._internal();
@@ -12,11 +13,13 @@ class OfflineDatabase {
1213
1314 Future<Database > db() async {
1415 if (_db == null) {
15- final factory = kIsWeb
16- ? databaseFactoryWeb
17- : getDatabaseFactorySqflite(sqflite.databaseFactory);
18- _db = await factory.openDatabase('{{spec .title | caseLower }}.db');
16+ final factory = getDatabaseFactorySqflite(
17+ Platform.isLinux || Platform.isWindows
18+ ? databaseFactoryFfi
19+ : sqflite.databaseFactory,
20+ );
21+ _db = await factory.openDatabase('{{ spec .title | caseLower }}.db');
1922 }
2023 return _db!;
2124 }
22- }
25+ }
Original file line number Diff line number Diff line change 1+ import 'package:sembast/sembast.dart';
2+
3+ class OfflineDatabase {
4+ static final OfflineDatabase instance = OfflineDatabase._internal();
5+
6+ OfflineDatabase._internal();
7+
8+ Future<Database > db() async {
9+ throw UnimplementedError();
10+ }
11+ }
Original file line number Diff line number Diff line change 1+ import 'package:sembast/sembast.dart';
2+ import 'package:sembast_web/sembast_web.dart';
3+
4+ class OfflineDatabase {
5+ static final OfflineDatabase instance = OfflineDatabase._internal();
6+ Database? _db;
7+
8+ OfflineDatabase._internal();
9+
10+ Future<Database > db() async {
11+ if (_db == null) {
12+ final factory = databaseFactoryWeb;
13+ _db = await factory.openDatabase('{{ spec .title | caseLower }}.db');
14+ }
15+ return _db!;
16+ }
17+ }
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ dependencies:
2323 path: ^1.8.2
2424 sembast: ^3.4.0+6
2525 sembast_sqflite: ^2.1.0+1
26+ sqflite_common_ffi: ^2.2.2
2627 sembast_web: ^2.1.0+4
2728 sqflite: ^2.2.2
2829
You can’t perform that action at this time.
0 commit comments