From ae79a3e5901dce80a397ea0b51bc7cd12388f9bc Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Sun, 21 Sep 2025 20:09:50 +0200 Subject: [PATCH 1/2] Support build_web_compilers --- .../src/open_factory/abstract_powersync_open_factory.dart | 7 ++++++- .../lib/src/open_factory/native/native_open_factory.dart | 8 +++++++- packages/powersync_core/pubspec.yaml | 1 - 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/powersync_core/lib/src/open_factory/abstract_powersync_open_factory.dart b/packages/powersync_core/lib/src/open_factory/abstract_powersync_open_factory.dart index d5666fad..cb88af22 100644 --- a/packages/powersync_core/lib/src/open_factory/abstract_powersync_open_factory.dart +++ b/packages/powersync_core/lib/src/open_factory/abstract_powersync_open_factory.dart @@ -1,7 +1,7 @@ import 'dart:async'; -import 'package:universal_io/io.dart'; import 'dart:math'; +import 'package:meta/meta.dart'; import 'package:powersync_core/sqlite_async.dart'; import 'package:powersync_core/src/open_factory/common_db_functions.dart'; import 'package:sqlite_async/sqlite3_common.dart'; @@ -70,6 +70,11 @@ abstract class AbstractPowerSyncOpenFactory extends DefaultSqliteOpenFactory { /// Returns the library name for the current platform. /// [path] is optional and is used when the library is not in the default location. String getLibraryForPlatform({String? path}); + + /// On native platforms, synchronously pauses the current isolate for the + /// given [Duration]. + @visibleForOverriding + void sleep(Duration duration) {} } /// Advanced: Define custom setup for each SQLite connection. diff --git a/packages/powersync_core/lib/src/open_factory/native/native_open_factory.dart b/packages/powersync_core/lib/src/open_factory/native/native_open_factory.dart index f564d349..775e59e8 100644 --- a/packages/powersync_core/lib/src/open_factory/native/native_open_factory.dart +++ b/packages/powersync_core/lib/src/open_factory/native/native_open_factory.dart @@ -1,8 +1,9 @@ +import 'dart:io'; +import 'dart:io' as io; import 'dart:ffi'; import 'package:powersync_core/src/exceptions.dart'; import 'package:powersync_core/src/log.dart'; -import 'package:universal_io/io.dart'; import 'dart:isolate'; import 'package:powersync_core/src/open_factory/abstract_powersync_open_factory.dart'; import 'package:sqlite_async/sqlite3.dart' as sqlite; @@ -109,4 +110,9 @@ class PowerSyncOpenFactory extends AbstractPowerSyncOpenFactory { ); } } + + @override + void sleep(Duration duration) { + io.sleep(duration); + } } diff --git a/packages/powersync_core/pubspec.yaml b/packages/powersync_core/pubspec.yaml index 2b1bb090..7a4c9f7a 100644 --- a/packages/powersync_core/pubspec.yaml +++ b/packages/powersync_core/pubspec.yaml @@ -14,7 +14,6 @@ dependencies: sqlite3: ^2.4.6 # We implement a database controller, which is an interface of sqlite3_web. sqlite3_web: ^0.3.2 - universal_io: ^2.0.0 meta: ^1.0.0 http: ^1.5.0 uuid: ^4.2.0 From e6b15ca8b21f8504a81bfaf491f8a42518934e0a Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 22 Sep 2025 16:05:53 +0200 Subject: [PATCH 2/2] Update `sqlite3_flutter_libs` dependency --- packages/powersync/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/powersync/pubspec.yaml b/packages/powersync/pubspec.yaml index fa7bdc11..ad31d0d3 100644 --- a/packages/powersync/pubspec.yaml +++ b/packages/powersync/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter - sqlite3_flutter_libs: ^0.5.23 + sqlite3_flutter_libs: ^0.5.39 powersync_core: ^1.5.2 powersync_flutter_libs: ^0.4.11 collection: ^1.17.0