diff --git a/CHANGELOG.md b/CHANGELOG.md index 4441d48..8426524 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.0.4 + +- Make serializer const +- Add asOptional getter on ValueValidator +- Add optional getter on Map + ## 0.0.3 - Add generic Serializer model diff --git a/lib/src/serialization/serializer.dart b/lib/src/serialization/serializer.dart index c82c2b6..96ba149 100644 --- a/lib/src/serialization/serializer.dart +++ b/lib/src/serialization/serializer.dart @@ -4,7 +4,7 @@ import "package:dart_iconica_utilities/src/value_validator/value_validator.dart" /// class Serializer { /// - Serializer({ + const Serializer({ required this.fromMap, required this.toMap, this.validators = const {}, diff --git a/lib/src/value_validator/models.dart b/lib/src/value_validator/models.dart index 1a9f983..8dcbdec 100644 --- a/lib/src/value_validator/models.dart +++ b/lib/src/value_validator/models.dart @@ -215,8 +215,25 @@ class ValueValidator { return validator(value); } + + /// + ValueValidator get asOptional => ValueValidator( + optional: true, + validator: validator, + jsonRepresentation: jsonRepresentation, + ); } /// // ignore: avoid_annotating_with_dynamic typedef CustomValidator = dynamic Function(dynamic value); + +/// +typedef SerializedObjectValidator = Map; + +/// +extension OptionalObjectValidator on SerializedObjectValidator { + /// + SerializedObjectValidator get optional => + map((key, value) => MapEntry(key, value.asOptional)); +} diff --git a/pubspec.yaml b/pubspec.yaml index 8970d57..14bb397 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: dart_iconica_utilities description: Useful utilities for dart projects -version: 0.0.3 +version: 0.0.4 homepage: https://iconica.app