Skip to content

Commit 18ca74e

Browse files
committed
attempt to fix on windows
1 parent c53bbea commit 18ca74e

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

lib/flutter_data.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ library flutter_data;
33
// import external packages
44
import 'dart:async';
55
import 'dart:convert';
6+
import 'dart:ffi';
67
import 'dart:io';
78
import 'dart:isolate';
89
import 'dart:math' show Random;
@@ -15,6 +16,7 @@ import 'package:inflection3/inflection3.dart' as inflection;
1516
import 'package:meta/meta.dart';
1617
import 'package:path/path.dart' as path_helper;
1718
import 'package:riverpod/riverpod.dart';
19+
import 'package:sqlite3/open.dart';
1820
import 'package:sqlite3/sqlite3.dart';
1921
import 'package:state_notifier/state_notifier.dart';
2022

lib/src/storage/local_storage.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ class LocalStorage {
2929
await destroy();
3030
}
3131

32+
if (Platform.isWindows) {
33+
open.overrideFor(OperatingSystem.windows, _openOnWindows);
34+
}
35+
3236
db = sqlite3.open(path, mutex: false);
3337

3438
if (inIsolate) {
@@ -109,3 +113,12 @@ enum LocalStorageClearStrategy {
109113
final localStorageProvider = Provider<LocalStorage>(
110114
(ref) => LocalStorage(baseDirFn: () => ''),
111115
);
116+
117+
// platforms
118+
119+
DynamicLibrary _openOnWindows() {
120+
final scriptDir = File(Platform.script.toFilePath()).parent;
121+
final libraryNextToScript =
122+
File(path_helper.join(scriptDir.path, 'sqlite3.dll'));
123+
return DynamicLibrary.open(libraryNextToScript.path);
124+
}

0 commit comments

Comments
 (0)