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
207
207
],
208
208
[
209
209
'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 ' ,
212
222
],
213
223
[
214
224
'scope ' => 'default ' ,
Original file line number Diff line number Diff line change @@ -10,7 +10,9 @@ import 'package:sembast/utils/value_utils.dart';
10
10
11
11
import 'enums.dart';
12
12
import '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';
14
16
import 'response.dart';
15
17
16
18
class AccessTimestamp {
Original file line number Diff line number Diff line change 1
- import 'package:flutter/foundation.dart';
1
+ import 'dart:io';
2
+
2
3
import 'package:sembast/sembast.dart';
3
4
import 'package:sembast_sqflite/sembast_sqflite.dart';
4
- import 'package:sembast_web/sembast_web.dart';
5
5
import 'package:sqflite/sqflite.dart' as sqflite;
6
+ import 'package:sqflite_common_ffi/sqflite_ffi.dart';
6
7
7
8
class OfflineDatabase {
8
9
static final OfflineDatabase instance = OfflineDatabase._internal();
@@ -12,11 +13,13 @@ class OfflineDatabase {
12
13
13
14
Future<Database > db() async {
14
15
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');
19
22
}
20
23
return _db!;
21
24
}
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:
23
23
path: ^1.8.2
24
24
sembast: ^3.4.0+6
25
25
sembast_sqflite: ^2.1.0+1
26
+ sqflite_common_ffi: ^2.2.2
26
27
sembast_web: ^2.1.0+4
27
28
sqflite: ^2.2.2
28
29
You can’t perform that action at this time.
0 commit comments