diff --git a/CHANGELOG.md b/CHANGELOG.md index f2a34f2..f433042 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.6.1 +- faet: add registerJsonable + ## 4.6.0 - feat: add ModuleJsonable diff --git a/example/lib/src/biz/module.dart b/example/lib/src/biz/module.dart index b3ec0de..0a2d4b7 100644 --- a/example/lib/src/biz/module.dart +++ b/example/lib/src/biz/module.dart @@ -3,6 +3,7 @@ // Do not edit this file. // +import 'package:flutter_jsonable/flutter_jsonable.dart'; import 'package:flutter_thrio/flutter_thrio.dart'; import 'biz1/module.dart' as biz1; @@ -16,6 +17,7 @@ class Module ThrioModule, ModuleJsonDeserializer, ModuleJsonSerializer, + ModuleJsonable, ModuleParamScheme { @override String get key => 'biz'; @@ -32,6 +34,22 @@ class Module registerParamScheme('people'); } + @override + void onJsonableRegister(final ModuleContext moduleContext) { + registerJsonable(JsonableBuilder( + (final obj) => obj.toJson(), + People.fromJson, + )); + registerJsonable(JsonableBuilder( + (final obj) => obj.toJson(), + House.fromJson, + )); + registerJsonable(JsonableBuilder( + (final obj) => obj.toJson(), + UserProfile.fromJson, + )); + } + @override void onJsonSerializerRegister(final ModuleContext moduleContext) { registerJsonSerializer((final i) => i().toJson()); diff --git a/lib/flutter_thrio.dart b/lib/flutter_thrio.dart index 3072d97..047cb1c 100644 --- a/lib/flutter_thrio.dart +++ b/lib/flutter_thrio.dart @@ -32,6 +32,7 @@ export 'src/extension/thrio_stateful_widget.dart'; export 'src/logger/thrio_logger.dart'; export 'src/module/module_json_deserializer.dart'; export 'src/module/module_json_serializer.dart'; +export 'src/module/module_jsonable.dart'; export 'src/module/module_page_builder.dart'; export 'src/module/module_page_observer.dart'; export 'src/module/module_param_scheme.dart'; diff --git a/lib/src/module/module_jsonable.dart b/lib/src/module/module_jsonable.dart index db989ec..d8af3e2 100644 --- a/lib/src/module/module_jsonable.dart +++ b/lib/src/module/module_jsonable.dart @@ -41,6 +41,6 @@ mixin ModuleJsonable on ThrioModule { /// Unregistry by calling the return value `VoidCallback`. /// @protected - VoidCallback registerJsonSerializer(final Jsonable jsonable) => + VoidCallback registerJsonable(final Jsonable jsonable) => jsonableRegistry.registerJsonable(jsonable); } diff --git a/pubspec.yaml b/pubspec.yaml index 99a5a59..2349081 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_thrio description: Thrio makes it easy and fast to add flutter to existing mobile applications, and provide a simple and consistent navigator APIs. -version: 4.6.0 +version: 4.6.1 homepage: https://github.com/flutter-thrio/flutter_thrio environment: