diff --git a/packages/connectivity_plus_linux/lib/connectivity_plus_linux.dart b/packages/connectivity_plus_linux/lib/connectivity_plus_linux.dart index 8d035e5da7..08c815673a 100644 --- a/packages/connectivity_plus_linux/lib/connectivity_plus_linux.dart +++ b/packages/connectivity_plus_linux/lib/connectivity_plus_linux.dart @@ -1,4 +1,8 @@ /// The Linux implementation of `connectivity_plus`. library connectivity_plus_linux; -export 'src/connectivity.dart'; +// connectivity_plus_linux depends on dbus which uses FFI internally; export +// a stub for platforms that don't support FFI (e.g., web) to avoid having +// transitive dependencies break web compilation. +export 'src/connectivity_stub.dart' + if (dart.library.ffi) 'src/connectivity_real.dart'; diff --git a/packages/connectivity_plus_linux/lib/src/connectivity.dart b/packages/connectivity_plus_linux/lib/src/connectivity_real.dart similarity index 100% rename from packages/connectivity_plus_linux/lib/src/connectivity.dart rename to packages/connectivity_plus_linux/lib/src/connectivity_real.dart diff --git a/packages/connectivity_plus_linux/lib/src/connectivity_stub.dart b/packages/connectivity_plus_linux/lib/src/connectivity_stub.dart new file mode 100644 index 0000000000..c080737b07 --- /dev/null +++ b/packages/connectivity_plus_linux/lib/src/connectivity_stub.dart @@ -0,0 +1,16 @@ +import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; + +/// A stub implementation to satisfy compilation of multi-platform packages that +/// depend on connectivity_plus_linux. This should never actually be created. +/// +/// Notably, because connectivity_plus needs to manually register +/// connectivity_plus_linux, anything with a transitive dependency on +/// connectivity_plus will also depend on connectivity_plus_linux, not just at +/// the pubspec level but the code level. +class ConnectivityLinux extends ConnectivityPlatform { + /// Errors on attempted instantiation of the stub. It exists only to satisfy + /// compile-time dependencies, and should never actually be created. + ConnectivityLinux() { + assert(false); + } +} diff --git a/packages/connectivity_plus_linux/test/connectivity_plus_linux_test.dart b/packages/connectivity_plus_linux/test/connectivity_plus_linux_test.dart index 5f60e8c6f0..0201f04e55 100644 --- a/packages/connectivity_plus_linux/test/connectivity_plus_linux_test.dart +++ b/packages/connectivity_plus_linux/test/connectivity_plus_linux_test.dart @@ -1,4 +1,4 @@ -import 'package:connectivity_plus_linux/src/connectivity.dart'; +import 'package:connectivity_plus_linux/src/connectivity_real.dart'; import 'package:connectivity_plus_linux/src/network_manager.dart'; import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; import 'package:flutter_test/flutter_test.dart';