diff --git a/frb_dart/lib/src/codec/sse.dart b/frb_dart/lib/src/codec/sse.dart index fc31d32c9b..47843b5c07 100644 --- a/frb_dart/lib/src/codec/sse.dart +++ b/frb_dart/lib/src/codec/sse.dart @@ -5,6 +5,7 @@ import 'package:flutter_rust_bridge/src/codec/dco.dart'; import 'package:flutter_rust_bridge/src/generalized_frb_rust_binding/generalized_frb_rust_binding.dart'; import 'package:flutter_rust_bridge/src/manual_impl/manual_impl.dart'; import 'package:flutter_rust_bridge/src/platform_types/platform_types.dart'; +import 'package:flutter_rust_bridge/src/platform_utils/platform_utils.dart'; import 'package:flutter_rust_bridge/src/third_party/flutter_foundation_serialization/read_buffer.dart'; import 'package:flutter_rust_bridge/src/third_party/flutter_foundation_serialization/write_buffer.dart'; @@ -25,6 +26,8 @@ class SseCodec @override S decodeObject(dynamic raw) { + raw = maybeDartify(raw); + if (raw is! Uint8List) { return _decodeObjectOfOtherType(raw); } diff --git a/frb_dart/lib/src/platform_utils/_io.dart b/frb_dart/lib/src/platform_utils/_io.dart index 8f9537e922..c03fbcdd8b 100644 --- a/frb_dart/lib/src/platform_utils/_io.dart +++ b/frb_dart/lib/src/platform_utils/_io.dart @@ -1 +1,2 @@ -// nothing yet +/// {@macro flutter_rust_bridge.internal} +Object? maybeDartify(Object? object) => object; diff --git a/frb_dart/lib/src/platform_utils/_web.dart b/frb_dart/lib/src/platform_utils/_web.dart index dbd2dff096..2db789c310 100644 --- a/frb_dart/lib/src/platform_utils/_web.dart +++ b/frb_dart/lib/src/platform_utils/_web.dart @@ -36,3 +36,11 @@ BigInt jsBigIntToDartBigInt(Object raw) { throw Exception( 'jsBigIntToDartBigInt see unexpected type=${raw.runtimeType} value=$raw'); } + +/// {@macro flutter_rust_bridge.internal} +Object? maybeDartify(Object? object) { + if (object is JSAny) { + return object.dartify(); + } + return object; +} diff --git a/frb_example/flutter_via_create/pubspec.lock b/frb_example/flutter_via_create/pubspec.lock index 306fabc9cd..6055177440 100644 --- a/frb_example/flutter_via_create/pubspec.lock +++ b/frb_example/flutter_via_create/pubspec.lock @@ -125,18 +125,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -165,18 +165,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" path: dependency: transitive description: @@ -189,10 +189,10 @@ packages: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -273,10 +273,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" vector_math: dependency: transitive description: @@ -289,10 +289,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.5" web: dependency: transitive description: