Skip to content

Commit

Permalink
faet: add registerJsonable
Browse files Browse the repository at this point in the history
  • Loading branch information
foxsofter committed Sep 5, 2023
1 parent 73aa0a3 commit 4dacbd3
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 4.6.1
- faet: add registerJsonable

## 4.6.0
- feat: add ModuleJsonable

Expand Down
18 changes: 18 additions & 0 deletions example/lib/src/biz/module.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -16,6 +17,7 @@ class Module
ThrioModule,
ModuleJsonDeserializer,
ModuleJsonSerializer,
ModuleJsonable,
ModuleParamScheme {
@override
String get key => 'biz';
Expand All @@ -32,6 +34,22 @@ class Module
registerParamScheme('people');
}

@override
void onJsonableRegister(final ModuleContext moduleContext) {
registerJsonable<People>(JsonableBuilder<People>(
(final obj) => obj.toJson(),
People.fromJson,
));
registerJsonable<House>(JsonableBuilder<House>(
(final obj) => obj.toJson(),
House.fromJson,
));
registerJsonable<UserProfile>(JsonableBuilder<UserProfile>(
(final obj) => obj.toJson(),
UserProfile.fromJson,
));
}

@override
void onJsonSerializerRegister(final ModuleContext moduleContext) {
registerJsonSerializer<People>((final i) => i<People>().toJson());
Expand Down
1 change: 1 addition & 0 deletions lib/flutter_thrio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
2 changes: 1 addition & 1 deletion lib/src/module/module_jsonable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ mixin ModuleJsonable on ThrioModule {
/// Unregistry by calling the return value `VoidCallback`.
///
@protected
VoidCallback registerJsonSerializer<T>(final Jsonable<dynamic> jsonable) =>
VoidCallback registerJsonable<T>(final Jsonable<dynamic> jsonable) =>
jsonableRegistry.registerJsonable(jsonable);
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand Down

0 comments on commit 4dacbd3

Please sign in to comment.