From a32605e3489cbfa7b57da52e12e4d3b2d5d848c4 Mon Sep 17 00:00:00 2001 From: Mateus Felipe Date: Sun, 13 Jul 2025 21:39:04 -0300 Subject: [PATCH] Implement aliases --- json_annotation/lib/src/enum_helpers.dart | 85 +++++ json_annotation/lib/src/json_value.dart | 7 +- json_serializable/lib/src/enum_utils.dart | 98 +++++- .../lib/src/type_helpers/enum_helper.dart | 6 +- .../test/default_value/default_value.g.dart | 12 +- .../default_value.g_any_map__checked.g.dart | 13 +- .../implicit_default_value.g.dart | 15 +- .../integration/converter_examples.g.dart | 12 +- .../create_per_field_to_json_example.g.dart | 12 +- .../test/integration/integration_test.dart | 30 ++ .../test/integration/json_enum_example.dart | 21 ++ .../test/integration/json_enum_example.g.dart | 81 ++++- .../test/integration/json_test_example.g.dart | 57 ++- .../json_test_example.g_any_map.g.dart | 59 +++- .../test/json_serializable_test.dart | 1 + .../test/src/_json_enum_test_input.dart | 17 + .../src/unknown_enum_value_test_input.dart | 14 +- .../input.type_enumtype.g.dart | 24 +- .../input.type_iterable.g.dart | 17 +- .../supported_types/input.type_list.g.dart | 19 +- .../supported_types/input.type_map.g.dart | 327 +++++++++++++----- .../supported_types/input.type_record.g.dart | 43 ++- .../supported_types/input.type_set.g.dart | 19 +- 23 files changed, 821 insertions(+), 168 deletions(-) diff --git a/json_annotation/lib/src/enum_helpers.dart b/json_annotation/lib/src/enum_helpers.dart index c0c5cb3ed..2e937f2ad 100644 --- a/json_annotation/lib/src/enum_helpers.dart +++ b/json_annotation/lib/src/enum_helpers.dart @@ -51,6 +51,53 @@ K? $enumDecodeNullable( return unknownValue; } +/// Returns the key associated with value [source] from [decodeMap], if one +/// exists. +/// +/// If [unknownValue] is not `null` and [source] is not a value in [decodeMap], +/// [unknownValue] is returned. Otherwise, an [ArgumentError] is thrown. +/// +/// If [source] is `null`, `null` is returned. +/// +/// Exposed only for code generated by `package:json_serializable`. +/// Not meant to be used directly by user code. +V? $enumDecodeNullableWithDecodeMap( + Map decodeMap, + Object? source, { + Enum? unknownValue, +}) { + if (source == null) { + return null; + } + + final decodedValue = decodeMap[source]; + + if (decodedValue != null) { + return decodedValue; + } + + if (unknownValue == JsonKey.nullForUndefinedEnumValue) { + return null; + } + + if (unknownValue == null) { + throw ArgumentError( + '`$source` is not one of the supported values: ' + '${decodeMap.keys.join(', ')}', + ); + } + + if (unknownValue is! V) { + throw ArgumentError.value( + unknownValue, + 'unknownValue', + 'Must by of type `$K` or `JsonKey.nullForUndefinedEnumValue`.', + ); + } + + return unknownValue; +} + /// Returns the key associated with value [source] from [enumValues], if one /// exists. /// @@ -88,3 +135,41 @@ K $enumDecode( return unknownValue; } + +/// Returns the key associated with value [source] from [decodeMap], if one +/// exists. +/// +/// If [unknownValue] is not `null` and [source] is not a value in [decodeMap], +/// [unknownValue] is returned. Otherwise, an [ArgumentError] is thrown. +/// +/// If [source] is `null`, an [ArgumentError] is thrown. +/// +/// Exposed only for code generated by `package:json_serializable`. +/// Not meant to be used directly by user code. +V $enumDecodeWithDecodeMap( + Map decodeMap, + Object? source, { + V? unknownValue, +}) { + if (source == null) { + throw ArgumentError( + 'A value must be provided. Supported values: ' + '${decodeMap.keys.join(', ')}', + ); + } + + final decodedValue = decodeMap[source]; + + if (decodedValue != null) { + return decodedValue; + } + + if (unknownValue == null) { + throw ArgumentError( + '`$source` is not one of the supported values: ' + '${decodeMap.keys.join(', ')}', + ); + } + + return unknownValue; +} diff --git a/json_annotation/lib/src/json_value.dart b/json_annotation/lib/src/json_value.dart index 4e5cb4f2b..243d85a03 100644 --- a/json_annotation/lib/src/json_value.dart +++ b/json_annotation/lib/src/json_value.dart @@ -9,5 +9,10 @@ class JsonValue { /// Can be a [String] or an [int]. final dynamic value; - const JsonValue(this.value); + /// Optional values that can be used when deserializing. + /// + /// The elements of [aliases] must be either [String] or [int]. + final Set aliases; + + const JsonValue(this.value, {this.aliases = const {}}); } diff --git a/json_serializable/lib/src/enum_utils.dart b/json_serializable/lib/src/enum_utils.dart index c5d5d1b54..40e519c21 100644 --- a/json_serializable/lib/src/enum_utils.dart +++ b/json_serializable/lib/src/enum_utils.dart @@ -15,6 +15,9 @@ import 'utils.dart'; String constMapName(DartType targetType) => '_\$${targetType.element!.name}EnumMap'; +String constDecodeMapName(DartType targetType) => + '_\$${targetType.element!.name}EnumDecodeMap'; + /// If [targetType] is not an enum, return `null`. /// /// Otherwise, returns `true` if [targetType] is nullable OR if one of the @@ -40,17 +43,40 @@ String? enumValueMapFromType( nullWithNoAnnotation: nullWithNoAnnotation, ); - if (enumMap == null) return null; + final enumAliases = _enumAliases( + targetType, + nullWithNoAnnotation: nullWithNoAnnotation, + ); - final items = enumMap.entries + final valuesItems = enumMap?.entries .map( (e) => - ' ${targetType.element!.name}.${e.key.name3}: ' + ' ${targetType.element3!.name3}.${e.key.name3}: ' '${jsonLiteralAsDart(e.value)},', ) .join(); - return 'const ${constMapName(targetType)} = {\n$items\n};'; + final valuesMap = valuesItems == null + ? null + : '// ignore: unused_element\n' + 'const ${constMapName(targetType)} = {\n$valuesItems\n};'; + + final decodeItems = enumAliases?.entries + .map( + (e) => + ' ${jsonLiteralAsDart(e.key)}: ' + '${targetType.element!.name}.${e.value.name3},', + ) + .join(); + + final decodeMap = decodeItems == null + ? null + : '// ignore: unused_element\n' + 'const ${constDecodeMapName(targetType)} = {\n$decodeItems\n};'; + + return valuesMap == null && decodeMap == null + ? null + : [valuesMap, decodeMap].join('\n\n'); } Map? _enumMap( @@ -78,6 +104,31 @@ Map? _enumMap( }; } +Map? _enumAliases( + DartType targetType, { + bool nullWithNoAnnotation = false, +}) { + final targetTypeElement = targetType.element; + if (targetTypeElement == null) return null; + final annotation = _jsonEnumChecker.firstAnnotationOf(targetTypeElement); + final jsonEnum = _fromAnnotation(annotation); + + final enumFields = iterateEnumFields(targetType); + + if (enumFields == null || (nullWithNoAnnotation && !jsonEnum.alwaysCreate)) { + return null; + } + + return { + for (var field in enumFields) ...{ + _generateEntry(field: field, jsonEnum: jsonEnum, targetType: targetType): + field, + for (var alias in _generateAliases(field: field, targetType: targetType)) + alias: field, + }, + }; +} + Object? _generateEntry({ required FieldElement2 field, required JsonEnum jsonEnum, @@ -144,6 +195,37 @@ Object? _generateEntry({ } } +List _generateAliases({ + required FieldElement2 field, + required DartType targetType, +}) { + final annotation = const TypeChecker.fromRuntime( + JsonValue, + ).firstAnnotationOfExact(field); + + if (annotation == null) { + return const []; + } else { + final reader = ConstantReader(annotation); + + final valueReader = reader.read('aliases'); + + if (valueReader.validAliasesType) { + return [ + for (final value in valueReader.setValue) + ConstantReader(value).literalValue, + ]; + } else { + final targetTypeCode = typeToCode(targetType); + throw InvalidGenerationSourceError( + 'The `JsonValue` annotation on `$targetTypeCode.${field.name3}` ' + 'aliases should all be of type String or int.', + element: field, + ); + } + } +} + const _jsonEnumChecker = TypeChecker.fromRuntime(JsonEnum); JsonEnum _fromAnnotation(DartObject? dartObject) { @@ -160,4 +242,12 @@ JsonEnum _fromAnnotation(DartObject? dartObject) { extension on ConstantReader { bool get validValueType => isString || isNull || isInt; + + bool get validAliasesType => + isSet && + setValue.every( + (element) => + (element.type?.isDartCoreString ?? false) || + (element.type?.isDartCoreInt ?? false), + ); } diff --git a/json_serializable/lib/src/type_helpers/enum_helper.dart b/json_serializable/lib/src/type_helpers/enum_helper.dart index ce7641fdf..544003b2b 100644 --- a/json_serializable/lib/src/type_helpers/enum_helper.dart +++ b/json_serializable/lib/src/type_helpers/enum_helper.dart @@ -64,15 +64,15 @@ class EnumHelper extends TypeHelper { String functionName; if (targetType.isNullableType || defaultProvided) { - functionName = r'$enumDecodeNullable'; + functionName = r'$enumDecodeNullableWithDecodeMap'; } else { - functionName = r'$enumDecode'; + functionName = r'$enumDecodeWithDecodeMap'; } context.addMember(memberContent); final args = [ - constMapName(targetType), + constDecodeMapName(targetType), expression, if (jsonKey.unknownEnumValue != null) 'unknownValue: ${jsonKey.unknownEnumValue}', diff --git a/json_serializable/test/default_value/default_value.g.dart b/json_serializable/test/default_value/default_value.g.dart index af6395178..945e93e77 100644 --- a/json_serializable/test/default_value/default_value.g.dart +++ b/json_serializable/test/default_value/default_value.g.dart @@ -33,7 +33,8 @@ DefaultValue _$DefaultValueFromJson(Map json) => DefaultValue( { 'root': ['child'], }, - $enumDecodeNullable(_$GreekEnumMap, json['fieldEnum']) ?? Greek.beta, + $enumDecodeNullableWithDecodeMap(_$GreekEnumDecodeMap, json['fieldEnum']) ?? + Greek.beta, durationField: json['durationField'] == null ? Duration.zero : Duration(microseconds: (json['durationField'] as num).toInt()), @@ -93,9 +94,18 @@ Map _$DefaultValueToJson(DefaultValue instance) => instance.valueFromDefaultValueNamedConstructor, }; +// ignore: unused_element const _$GreekEnumMap = { Greek.alpha: 'alpha', Greek.beta: 'beta', Greek.gamma: 'gamma', Greek.delta: 'delta', }; + +// ignore: unused_element +const _$GreekEnumDecodeMap = { + 'alpha': Greek.alpha, + 'beta': Greek.beta, + 'gamma': Greek.gamma, + 'delta': Greek.delta, +}; diff --git a/json_serializable/test/default_value/default_value.g_any_map__checked.g.dart b/json_serializable/test/default_value/default_value.g_any_map__checked.g.dart index 0462bd167..8992309ea 100644 --- a/json_serializable/test/default_value/default_value.g_any_map__checked.g.dart +++ b/json_serializable/test/default_value/default_value.g_any_map__checked.g.dart @@ -56,7 +56,9 @@ DefaultValue _$DefaultValueFromJson(Map json) => ), $checkedConvert( 'fieldEnum', - (v) => $enumDecodeNullable(_$GreekEnumMap, v) ?? Greek.beta, + (v) => + $enumDecodeNullableWithDecodeMap(_$GreekEnumDecodeMap, v) ?? + Greek.beta, ), durationField: $checkedConvert( 'durationField', @@ -129,9 +131,18 @@ Map _$DefaultValueToJson(DefaultValue instance) => instance.valueFromDefaultValueNamedConstructor, }; +// ignore: unused_element const _$GreekEnumMap = { Greek.alpha: 'alpha', Greek.beta: 'beta', Greek.gamma: 'gamma', Greek.delta: 'delta', }; + +// ignore: unused_element +const _$GreekEnumDecodeMap = { + 'alpha': Greek.alpha, + 'beta': Greek.beta, + 'gamma': Greek.gamma, + 'delta': Greek.delta, +}; diff --git a/json_serializable/test/default_value/implicit_default_value.g.dart b/json_serializable/test/default_value/implicit_default_value.g.dart index 06cb4a462..8679aeaa9 100644 --- a/json_serializable/test/default_value/implicit_default_value.g.dart +++ b/json_serializable/test/default_value/implicit_default_value.g.dart @@ -42,7 +42,11 @@ DefaultValueImplicit _$DefaultValueImplicitFromJson( 'root': ['child'], }, fieldEnum: - $enumDecodeNullable(_$GreekEnumMap, json['fieldEnum']) ?? Greek.beta, + $enumDecodeNullableWithDecodeMap( + _$GreekEnumDecodeMap, + json['fieldEnum'], + ) ?? + Greek.beta, durationField: json['durationField'] == null ? const Duration() : Duration(microseconds: (json['durationField'] as num).toInt()), @@ -102,9 +106,18 @@ Map _$DefaultValueImplicitToJson( instance.valueFromDefaultValueNamedConstructor, }; +// ignore: unused_element const _$GreekEnumMap = { Greek.alpha: 'alpha', Greek.beta: 'beta', Greek.gamma: 'gamma', Greek.delta: 'delta', }; + +// ignore: unused_element +const _$GreekEnumDecodeMap = { + 'alpha': Greek.alpha, + 'beta': Greek.beta, + 'gamma': Greek.gamma, + 'delta': Greek.delta, +}; diff --git a/json_serializable/test/integration/converter_examples.g.dart b/json_serializable/test/integration/converter_examples.g.dart index 7315b4a30..df8ff5477 100644 --- a/json_serializable/test/integration/converter_examples.g.dart +++ b/json_serializable/test/integration/converter_examples.g.dart @@ -11,7 +11,10 @@ part of 'converter_examples.dart'; Issue1202RegressionClass _$Issue1202RegressionClassFromJson( Map json, ) => Issue1202RegressionClass( - value: $enumDecode(_$Issue1202RegressionEnumEnumMap, json['value']), + value: $enumDecodeWithDecodeMap( + _$Issue1202RegressionEnumEnumDecodeMap, + json['value'], + ), normalNullableValue: (json['normalNullableValue'] as num?)?.toInt(), notNullableValueWithNullableConverter: const _Issue1202RegressionConverter() .fromJson(json['notNullableValueWithNullableConverter'] as String?), @@ -44,11 +47,18 @@ Map _$Issue1202RegressionClassToJson( ), }; +// ignore: unused_element const _$Issue1202RegressionEnumEnumMap = { Issue1202RegressionEnum.normalValue: 42, Issue1202RegressionEnum.nullValue: null, }; +// ignore: unused_element +const _$Issue1202RegressionEnumEnumDecodeMap = { + 42: Issue1202RegressionEnum.normalValue, + null: Issue1202RegressionEnum.nullValue, +}; + Regression1229 _$Regression1229FromJson(Map json) => Regression1229( date: _$JsonConverterFromJson( diff --git a/json_serializable/test/integration/create_per_field_to_json_example.g.dart b/json_serializable/test/integration/create_per_field_to_json_example.g.dart index f77139ee1..7562369c5 100644 --- a/json_serializable/test/integration/create_per_field_to_json_example.g.dart +++ b/json_serializable/test/integration/create_per_field_to_json_example.g.dart @@ -11,7 +11,10 @@ part of 'create_per_field_to_json_example.dart'; Model _$ModelFromJson(Map json) => Model( firstName: json['firstName'] as String, lastName: json['lastName'] as String, - enumValue: $enumDecodeNullable(_$EnumValueEnumMap, json['enumValue']), + enumValue: $enumDecodeNullableWithDecodeMap( + _$EnumValueEnumDecodeMap, + json['enumValue'], + ), nested: json['nested'] == null ? null : Nested.fromJson(json['nested'] as Map), @@ -52,8 +55,15 @@ Map _$ModelToJson(Model instance) => { 'nestedExcludeIfNull': ?instance.nestedExcludeIfNull?.toJson(), }; +// ignore: unused_element const _$EnumValueEnumMap = {EnumValue.first: '1', EnumValue.second: 'second'}; +// ignore: unused_element +const _$EnumValueEnumDecodeMap = { + '1': EnumValue.first, + 'second': EnumValue.second, +}; + Nested _$NestedFromJson(Map json) => Nested(json['value'] as String); diff --git a/json_serializable/test/integration/integration_test.dart b/json_serializable/test/integration/integration_test.dart index 9cc5d0948..4e9075bb1 100644 --- a/json_serializable/test/integration/integration_test.dart +++ b/json_serializable/test/integration/integration_test.dart @@ -482,4 +482,34 @@ void main() { test('ModelJsonKeys', () { expect(js_keys.keys, {'first-name', 'LAST_NAME'}); }); + + group('JsonValue aliases', () { + test('should decode any one of the aliases values', () { + const jsonData = {'value': '2'}; + expect(EnumWithAliasesData.fromJson(jsonData).value, EnumWithAliases.two); + + const jsonData2 = {'value': 'two'}; + expect( + EnumWithAliasesData.fromJson(jsonData2).value, + EnumWithAliases.two, + ); + + const jsonData3 = {'value': 'deux'}; + expect( + EnumWithAliasesData.fromJson(jsonData3).value, + EnumWithAliases.two, + ); + + const jsonInvalidData = {'value': 'modmao'}; + expect( + () => EnumWithAliasesData.fromJson(jsonInvalidData), + throwsA(isA()), + ); + }); + + test('should encode to the non-alias value', () { + final jsonData = EnumWithAliasesData(EnumWithAliases.two).toJson(); + expect(jsonData, {'value': '2'}); + }); + }); } diff --git a/json_serializable/test/integration/json_enum_example.dart b/json_serializable/test/integration/json_enum_example.dart index f36159cc1..26a77d61f 100644 --- a/json_serializable/test/integration/json_enum_example.dart +++ b/json_serializable/test/integration/json_enum_example.dart @@ -99,3 +99,24 @@ class Issue1226Regression { Map toJson() => _$Issue1226RegressionToJson(this); } + +enum EnumWithAliases { + @JsonValue('1') + one, + @JsonValue('2', aliases: {'two', 'deux'}) + two, + @JsonValue('3') + three, +} + +@JsonSerializable() +class EnumWithAliasesData { + final EnumWithAliases value; + + EnumWithAliasesData(this.value); + + factory EnumWithAliasesData.fromJson(Map json) => + _$EnumWithAliasesDataFromJson(json); + + Map toJson() => _$EnumWithAliasesDataToJson(this); +} diff --git a/json_serializable/test/integration/json_enum_example.g.dart b/json_serializable/test/integration/json_enum_example.g.dart index 0cbe2616f..efc291d48 100644 --- a/json_serializable/test/integration/json_enum_example.g.dart +++ b/json_serializable/test/integration/json_enum_example.g.dart @@ -15,20 +15,28 @@ Issue559Regression _$Issue559RegressionFromJson(Map json) { disallowNullValues: const ['status'], ); return Issue559Regression( - status: $enumDecodeNullable( - _$Issue559RegressionEnumEnumMap, + status: $enumDecodeNullableWithDecodeMap( + _$Issue559RegressionEnumEnumDecodeMap, json['status'], unknownValue: JsonKey.nullForUndefinedEnumValue, ), ); } +// ignore: unused_element const _$Issue559RegressionEnumEnumMap = { Issue559RegressionEnum.alpha: 'alpha', Issue559RegressionEnum.beta: 'beta', Issue559RegressionEnum.gamma: 'gamma', }; +// ignore: unused_element +const _$Issue559RegressionEnumEnumDecodeMap = { + 'alpha': Issue559RegressionEnum.alpha, + 'beta': Issue559RegressionEnum.beta, + 'gamma': Issue559RegressionEnum.gamma, +}; + Map _$Issue1145RegressionAToJson( Issue1145RegressionA instance, ) => { @@ -37,12 +45,20 @@ Map _$Issue1145RegressionAToJson( ), }; +// ignore: unused_element const _$Issue1145RegressionEnumEnumMap = { Issue1145RegressionEnum.alpha: 'alpha', Issue1145RegressionEnum.beta: 'beta', Issue1145RegressionEnum.gamma: 'gamma', }; +// ignore: unused_element +const _$Issue1145RegressionEnumEnumDecodeMap = { + 'alpha': Issue1145RegressionEnum.alpha, + 'beta': Issue1145RegressionEnum.beta, + 'gamma': Issue1145RegressionEnum.gamma, +}; + Map _$Issue1145RegressionBToJson( Issue1145RegressionB instance, ) => { @@ -53,8 +69,8 @@ Map _$Issue1145RegressionBToJson( Issue1226Regression _$Issue1226RegressionFromJson(Map json) => Issue1226Regression( - durationType: $enumDecodeNullable( - _$Issue1145RegressionEnumEnumMap, + durationType: $enumDecodeNullableWithDecodeMap( + _$Issue1145RegressionEnumEnumDecodeMap, json['durationType'], ), ); @@ -65,6 +81,32 @@ Map _$Issue1226RegressionToJson( 'durationType': ?_$Issue1145RegressionEnumEnumMap[instance.durationType], }; +EnumWithAliasesData _$EnumWithAliasesDataFromJson(Map json) => + EnumWithAliasesData( + $enumDecodeWithDecodeMap(_$EnumWithAliasesEnumDecodeMap, json['value']), + ); + +Map _$EnumWithAliasesDataToJson( + EnumWithAliasesData instance, +) => {'value': _$EnumWithAliasesEnumMap[instance.value]!}; + +// ignore: unused_element +const _$EnumWithAliasesEnumMap = { + EnumWithAliases.one: '1', + EnumWithAliases.two: '2', + EnumWithAliases.three: '3', +}; + +// ignore: unused_element +const _$EnumWithAliasesEnumDecodeMap = { + '1': EnumWithAliases.one, + '2': EnumWithAliases.two, + 'two': EnumWithAliases.two, + 'deux': EnumWithAliases.two, + '3': EnumWithAliases.three, +}; + +// ignore: unused_element const _$StandAloneEnumEnumMap = { StandAloneEnum.alpha: 'a', StandAloneEnum.beta: 'b', @@ -72,19 +114,50 @@ const _$StandAloneEnumEnumMap = { StandAloneEnum.delta: 'd', }; +// ignore: unused_element +const _$StandAloneEnumEnumDecodeMap = { + 'a': StandAloneEnum.alpha, + 'b': StandAloneEnum.beta, + 'g': StandAloneEnum.gamma, + 'd': StandAloneEnum.delta, +}; + +// ignore: unused_element const _$DayTypeEnumMap = { DayType.noGood: 'no-good', DayType.rotten: 'rotten', DayType.veryBad: 'very-bad', }; +// ignore: unused_element +const _$DayTypeEnumDecodeMap = { + 'no-good': DayType.noGood, + 'rotten': DayType.rotten, + 'very-bad': DayType.veryBad, +}; + +// ignore: unused_element const _$MyStatusCodeEnumMap = { MyStatusCode.success: 200, MyStatusCode.weird: 701, }; +// ignore: unused_element +const _$MyStatusCodeEnumDecodeMap = { + 200: MyStatusCode.success, + 701: MyStatusCode.weird, +}; + +// ignore: unused_element const _$EnumValueFieldIndexEnumMap = { EnumValueFieldIndex.success: 0, EnumValueFieldIndex.weird: 701, EnumValueFieldIndex.oneMore: 2, }; + +// ignore: unused_element +const _$EnumValueFieldIndexEnumDecodeMap = { + 0: EnumValueFieldIndex.success, + 701: EnumValueFieldIndex.weird, + 2: EnumValueFieldIndex.oneMore, +}; diff --git a/json_serializable/test/integration/json_test_example.g.dart b/json_serializable/test/integration/json_test_example.g.dart index 1f1b456ee..e0c91b7b5 100644 --- a/json_serializable/test/integration/json_test_example.g.dart +++ b/json_serializable/test/integration/json_test_example.g.dart @@ -12,7 +12,7 @@ Person _$PersonFromJson(Map json) => Person( json['firstName'] as String, json['lastName'] as String, - $enumDecode(_$CategoryEnumMap, json[r'$house']), + $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, json[r'$house']), middleName: json['middleName'] as String?, dateOfBirth: json['dateOfBirth'] == null ? null @@ -29,11 +29,14 @@ Person _$PersonFromJson(Map json) => .toList(), ) ..houseMap = (json['houseMap'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecode(_$CategoryEnumMap, e)), + (k, e) => + MapEntry(k, $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, e)), ) ..categoryCounts = (json['categoryCounts'] as Map?)?.map( - (k, e) => - MapEntry($enumDecode(_$CategoryEnumMap, k), (e as num).toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, k), + (e as num).toInt(), + ), ); Map _$PersonToJson(Person instance) => { @@ -52,6 +55,7 @@ Map _$PersonToJson(Person instance) => { ), }; +// ignore: unused_element const _$CategoryEnumMap = { Category.top: 'top', Category.bottom: 'bottom', @@ -62,10 +66,24 @@ const _$CategoryEnumMap = { Category.notDiscoveredYet: 'not_discovered_yet', }; +// ignore: unused_element +const _$CategoryEnumDecodeMap = { + 'top': Category.top, + 'bottom': Category.bottom, + 'strange': Category.strange, + 'charmed': Category.charmed, + 'up': Category.up, + 'down': Category.down, + 'not_discovered_yet': Category.notDiscoveredYet, +}; + Order _$OrderFromJson(Map json) { $checkKeys(json, disallowNullValues: const ['count']); return Order.custom( - $enumDecodeNullable(_$CategoryEnumMap, json['category']), + $enumDecodeNullableWithDecodeMap( + _$CategoryEnumDecodeMap, + json['category'], + ), (json['items'] as List?)?.map( (e) => Item.fromJson(e as Map), ), @@ -85,8 +103,8 @@ Order _$OrderFromJson(Map json) { ? null : Uri.parse(json['homepage'] as String) ..statusCode = - $enumDecodeNullable( - _$StatusCodeEnumMap, + $enumDecodeNullableWithDecodeMap( + _$StatusCodeEnumDecodeMap, json['status_code'], unknownValue: StatusCode.unknown, ) ?? @@ -105,6 +123,7 @@ Map _$OrderToJson(Order instance) => { 'status_code': _$StatusCodeEnumMap[instance.statusCode], }; +// ignore: unused_element const _$StatusCodeEnumMap = { StatusCode.success: 200, StatusCode.notFound: 404, @@ -112,6 +131,14 @@ const _$StatusCodeEnumMap = { StatusCode.unknown: 'unknown', }; +// ignore: unused_element +const _$StatusCodeEnumDecodeMap = { + 200: StatusCode.success, + 404: StatusCode.notFound, + '500': StatusCode.weird, + 'unknown': StatusCode.unknown, +}; + Item _$ItemFromJson(Map json) => Item((json['price'] as num?)?.toInt()) ..itemNumber = (json['item-number'] as num?)?.toInt() @@ -185,22 +212,22 @@ Map _$MapKeyVarietyToJson(MapKeyVariety instance) => UnknownEnumValue _$UnknownEnumValueFromJson(Map json) => UnknownEnumValue() - ..enumValue = $enumDecode( - _$CategoryEnumMap, + ..enumValue = $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, json['enumValue'], unknownValue: Category.notDiscoveredYet, ) ..enumIterable = (json['enumIterable'] as List).map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), ) ..enumList = (json['enumList'] as List) .map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), @@ -208,8 +235,8 @@ UnknownEnumValue _$UnknownEnumValueFromJson(Map json) => .toList() ..enumSet = (json['enumSet'] as List) .map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), diff --git a/json_serializable/test/integration/json_test_example.g_any_map.g.dart b/json_serializable/test/integration/json_test_example.g_any_map.g.dart index f25c7971e..64daf7628 100644 --- a/json_serializable/test/integration/json_test_example.g_any_map.g.dart +++ b/json_serializable/test/integration/json_test_example.g_any_map.g.dart @@ -12,7 +12,7 @@ Person _$PersonFromJson(Map json) => Person( json['firstName'] as String, json['lastName'] as String, - $enumDecode(_$CategoryEnumMap, json[r'$house']), + $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, json[r'$house']), middleName: json['middleName'] as String?, dateOfBirth: json['dateOfBirth'] == null ? null @@ -31,11 +31,16 @@ Person _$PersonFromJson(Map json) => .toList(), ) ..houseMap = (json['houseMap'] as Map?)?.map( - (k, e) => MapEntry(k as String, $enumDecode(_$CategoryEnumMap, e)), + (k, e) => MapEntry( + k as String, + $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, e), + ), ) ..categoryCounts = (json['categoryCounts'] as Map?)?.map( - (k, e) => - MapEntry($enumDecode(_$CategoryEnumMap, k), (e as num).toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$CategoryEnumDecodeMap, k), + (e as num).toInt(), + ), ); Map _$PersonToJson(Person instance) => { @@ -54,6 +59,7 @@ Map _$PersonToJson(Person instance) => { ), }; +// ignore: unused_element const _$CategoryEnumMap = { Category.top: 'top', Category.bottom: 'bottom', @@ -64,10 +70,24 @@ const _$CategoryEnumMap = { Category.notDiscoveredYet: 'not_discovered_yet', }; +// ignore: unused_element +const _$CategoryEnumDecodeMap = { + 'top': Category.top, + 'bottom': Category.bottom, + 'strange': Category.strange, + 'charmed': Category.charmed, + 'up': Category.up, + 'down': Category.down, + 'not_discovered_yet': Category.notDiscoveredYet, +}; + Order _$OrderFromJson(Map json) { $checkKeys(json, disallowNullValues: const ['count']); return Order.custom( - $enumDecodeNullable(_$CategoryEnumMap, json['category']), + $enumDecodeNullableWithDecodeMap( + _$CategoryEnumDecodeMap, + json['category'], + ), (json['items'] as List?)?.map( (e) => Item.fromJson(Map.from(e as Map)), ), @@ -87,8 +107,8 @@ Order _$OrderFromJson(Map json) { ? null : Uri.parse(json['homepage'] as String) ..statusCode = - $enumDecodeNullable( - _$StatusCodeEnumMap, + $enumDecodeNullableWithDecodeMap( + _$StatusCodeEnumDecodeMap, json['status_code'], unknownValue: StatusCode.unknown, ) ?? @@ -107,6 +127,7 @@ Map _$OrderToJson(Order instance) => { 'status_code': _$StatusCodeEnumMap[instance.statusCode], }; +// ignore: unused_element const _$StatusCodeEnumMap = { StatusCode.success: 200, StatusCode.notFound: 404, @@ -114,6 +135,14 @@ const _$StatusCodeEnumMap = { StatusCode.unknown: 'unknown', }; +// ignore: unused_element +const _$StatusCodeEnumDecodeMap = { + 200: StatusCode.success, + 404: StatusCode.notFound, + '500': StatusCode.weird, + 'unknown': StatusCode.unknown, +}; + Item _$ItemFromJson(Map json) => Item((json['price'] as num?)?.toInt()) ..itemNumber = (json['item-number'] as num?)?.toInt() ..saleDates = (json['saleDates'] as List?) @@ -184,22 +213,22 @@ Map _$MapKeyVarietyToJson(MapKeyVariety instance) => }; UnknownEnumValue _$UnknownEnumValueFromJson(Map json) => UnknownEnumValue() - ..enumValue = $enumDecode( - _$CategoryEnumMap, + ..enumValue = $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, json['enumValue'], unknownValue: Category.notDiscoveredYet, ) ..enumIterable = (json['enumIterable'] as List).map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), ) ..enumList = (json['enumList'] as List) .map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), @@ -207,8 +236,8 @@ UnknownEnumValue _$UnknownEnumValueFromJson(Map json) => UnknownEnumValue() .toList() ..enumSet = (json['enumSet'] as List) .map( - (e) => $enumDecode( - _$CategoryEnumMap, + (e) => $enumDecodeWithDecodeMap( + _$CategoryEnumDecodeMap, e, unknownValue: Category.notDiscoveredYet, ), diff --git a/json_serializable/test/json_serializable_test.dart b/json_serializable/test/json_serializable_test.dart index b6ff36789..b6ef4a57a 100644 --- a/json_serializable/test/json_serializable_test.dart +++ b/json_serializable/test/json_serializable_test.dart @@ -32,6 +32,7 @@ Future main() async { jsonEnumTestReader, const JsonEnumGenerator(), expectedAnnotatedTests: { + 'EnumAliasNotSupportType', 'EnumValueIssue1147', 'EnumValueNotAField', 'EnumValueNotSupportType', diff --git a/json_serializable/test/src/_json_enum_test_input.dart b/json_serializable/test/src/_json_enum_test_input.dart index 594229f7b..91a797c5a 100644 --- a/json_serializable/test/src/_json_enum_test_input.dart +++ b/json_serializable/test/src/_json_enum_test_input.dart @@ -5,11 +5,28 @@ import 'package:json_annotation/json_annotation.dart'; import 'package:source_gen_test/annotations.dart'; +@ShouldThrow( + 'The `JsonValue` annotation on `EnumAliasNotSupportType.one` aliases should ' + 'all be of type String or int.', +) +@JsonEnum(alwaysCreate: true) +enum EnumAliasNotSupportType { + @JsonValue('one', aliases: {#one}) + one, +} + @ShouldGenerate(r''' +// ignore: unused_element const _$EnumValueIssue1147EnumMap = { EnumValueIssue1147.success: 200, EnumValueIssue1147.weird: 601, }; + +// ignore: unused_element +const _$EnumValueIssue1147EnumDecodeMap = { + 200: EnumValueIssue1147.success, + 601: EnumValueIssue1147.weird, +}; ''') @JsonEnum(alwaysCreate: true, valueField: 'statusCodeNumber') enum EnumValueIssue1147 { diff --git a/json_serializable/test/src/unknown_enum_value_test_input.dart b/json_serializable/test/src/unknown_enum_value_test_input.dart index 3e9bd27c8..a60f2a03e 100644 --- a/json_serializable/test/src/unknown_enum_value_test_input.dart +++ b/json_serializable/test/src/unknown_enum_value_test_input.dart @@ -6,13 +6,14 @@ part of '_json_serializable_test_input.dart'; UnknownEnumValue _$UnknownEnumValueFromJson(Map json) => UnknownEnumValue() ..value = - $enumDecodeNullable( - _$UnknownEnumValueItemsEnumMap, + $enumDecodeNullableWithDecodeMap( + _$UnknownEnumValueItemsEnumDecodeMap, json['value'], unknownValue: UnknownEnumValueItems.vUnknown, ) ?? UnknownEnumValueItems.vNull; +// ignore: unused_element const _$UnknownEnumValueItemsEnumMap = { UnknownEnumValueItems.v0: 'v0', UnknownEnumValueItems.v1: 'v1', @@ -20,6 +21,15 @@ const _$UnknownEnumValueItemsEnumMap = { UnknownEnumValueItems.vUnknown: 'vUnknown', UnknownEnumValueItems.vNull: 'vNull', }; + +// ignore: unused_element +const _$UnknownEnumValueItemsEnumDecodeMap = { + 'v0': UnknownEnumValueItems.v0, + 'v1': UnknownEnumValueItems.v1, + 'v2': UnknownEnumValueItems.v2, + 'vUnknown': UnknownEnumValueItems.vUnknown, + 'vNull': UnknownEnumValueItems.vNull, +}; ''') @JsonSerializable(createToJson: false) class UnknownEnumValue { diff --git a/json_serializable/test/supported_types/input.type_enumtype.g.dart b/json_serializable/test/supported_types/input.type_enumtype.g.dart index 3e25a0194..8765db840 100644 --- a/json_serializable/test/supported_types/input.type_enumtype.g.dart +++ b/json_serializable/test/supported_types/input.type_enumtype.g.dart @@ -9,8 +9,12 @@ part of 'input.type_enumtype.dart'; // ************************************************************************** SimpleClass _$SimpleClassFromJson(Map json) => SimpleClass( - $enumDecode(_$EnumTypeEnumMap, json['value']), - $enumDecodeNullable(_$EnumTypeEnumMap, json['withDefault']) ?? EnumType.alpha, + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, json['value']), + $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + json['withDefault'], + ) ?? + EnumType.alpha, ); Map _$SimpleClassToJson(SimpleClass instance) => @@ -19,6 +23,7 @@ Map _$SimpleClassToJson(SimpleClass instance) => 'withDefault': _$EnumTypeEnumMap[instance.withDefault]!, }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -26,10 +31,21 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullable _$SimpleClassNullableFromJson(Map json) => SimpleClassNullable( - $enumDecodeNullable(_$EnumTypeEnumMap, json['value']), - $enumDecodeNullable(_$EnumTypeEnumMap, json['withDefault']) ?? + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, json['value']), + $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + json['withDefault'], + ) ?? EnumType.alpha, ); diff --git a/json_serializable/test/supported_types/input.type_iterable.g.dart b/json_serializable/test/supported_types/input.type_iterable.g.dart index 6f2df94a4..a91fbd49d 100644 --- a/json_serializable/test/supported_types/input.type_iterable.g.dart +++ b/json_serializable/test/supported_types/input.type_iterable.g.dart @@ -286,7 +286,7 @@ SimpleClassOfEnumType _$SimpleClassOfEnumTypeFromJson( Map json, ) => SimpleClassOfEnumType( (json['value'] as List).map( - (e) => $enumDecode(_$EnumTypeEnumMap, e), + (e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ); @@ -296,6 +296,7 @@ Map _$SimpleClassOfEnumTypeToJson( 'value': instance.value.map((e) => _$EnumTypeEnumMap[e]!).toList(), }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -303,11 +304,19 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullableOfEnumType _$SimpleClassNullableOfEnumTypeFromJson( Map json, ) => SimpleClassNullableOfEnumType( (json['value'] as List?)?.map( - (e) => $enumDecode(_$EnumTypeEnumMap, e), + (e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ); @@ -321,7 +330,7 @@ SimpleClassOfEnumTypeNullable _$SimpleClassOfEnumTypeNullableFromJson( Map json, ) => SimpleClassOfEnumTypeNullable( (json['value'] as List).map( - (e) => $enumDecodeNullable(_$EnumTypeEnumMap, e), + (e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ); @@ -335,7 +344,7 @@ SimpleClassNullableOfEnumTypeNullable _$SimpleClassNullableOfEnumTypeNullableFromJson(Map json) => SimpleClassNullableOfEnumTypeNullable( (json['value'] as List?)?.map( - (e) => $enumDecodeNullable(_$EnumTypeEnumMap, e), + (e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ); diff --git a/json_serializable/test/supported_types/input.type_list.g.dart b/json_serializable/test/supported_types/input.type_list.g.dart index c89d184e0..ff1e6ba98 100644 --- a/json_serializable/test/supported_types/input.type_list.g.dart +++ b/json_serializable/test/supported_types/input.type_list.g.dart @@ -303,7 +303,7 @@ SimpleClassOfEnumType _$SimpleClassOfEnumTypeFromJson( Map json, ) => SimpleClassOfEnumType( (json['value'] as List) - .map((e) => $enumDecode(_$EnumTypeEnumMap, e)) + .map((e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toList(), ); @@ -313,6 +313,7 @@ Map _$SimpleClassOfEnumTypeToJson( 'value': instance.value.map((e) => _$EnumTypeEnumMap[e]!).toList(), }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -320,11 +321,19 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullableOfEnumType _$SimpleClassNullableOfEnumTypeFromJson( Map json, ) => SimpleClassNullableOfEnumType( (json['value'] as List?) - ?.map((e) => $enumDecode(_$EnumTypeEnumMap, e)) + ?.map((e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toList(), ); @@ -338,7 +347,7 @@ SimpleClassOfEnumTypeNullable _$SimpleClassOfEnumTypeNullableFromJson( Map json, ) => SimpleClassOfEnumTypeNullable( (json['value'] as List) - .map((e) => $enumDecodeNullable(_$EnumTypeEnumMap, e)) + .map((e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toList(), ); @@ -352,7 +361,9 @@ SimpleClassNullableOfEnumTypeNullable _$SimpleClassNullableOfEnumTypeNullableFromJson(Map json) => SimpleClassNullableOfEnumTypeNullable( (json['value'] as List?) - ?.map((e) => $enumDecodeNullable(_$EnumTypeEnumMap, e)) + ?.map( + (e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ) .toList(), ); diff --git a/json_serializable/test/supported_types/input.type_map.g.dart b/json_serializable/test/supported_types/input.type_map.g.dart index 7077797f6..aa65379d0 100644 --- a/json_serializable/test/supported_types/input.type_map.g.dart +++ b/json_serializable/test/supported_types/input.type_map.g.dart @@ -124,8 +124,10 @@ SimpleClassOfEnumTypeToBigInt _$SimpleClassOfEnumTypeToBigIntFromJson( Map json, ) => SimpleClassOfEnumTypeToBigInt( (json['value'] as Map).map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), BigInt.parse(e as String)), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + BigInt.parse(e as String), + ), ), ); @@ -137,6 +139,7 @@ Map _$SimpleClassOfEnumTypeToBigIntToJson( ), }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -144,12 +147,20 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullableOfEnumTypeToBigInt _$SimpleClassNullableOfEnumTypeToBigIntFromJson(Map json) => SimpleClassNullableOfEnumTypeToBigInt( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), BigInt.parse(e as String), ), ), @@ -381,7 +392,7 @@ _$SimpleClassOfEnumTypeToBigIntNullableFromJson(Map json) => SimpleClassOfEnumTypeToBigIntNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : BigInt.parse(e as String), ), ), @@ -401,7 +412,7 @@ _$SimpleClassNullableOfEnumTypeToBigIntNullableFromJson( ) => SimpleClassNullableOfEnumTypeToBigIntNullable( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : BigInt.parse(e as String), ), ), @@ -617,7 +628,10 @@ SimpleClassOfEnumTypeToBool _$SimpleClassOfEnumTypeToBoolFromJson( Map json, ) => SimpleClassOfEnumTypeToBool( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as bool), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as bool, + ), ), ); @@ -631,7 +645,10 @@ SimpleClassNullableOfEnumTypeToBool _$SimpleClassNullableOfEnumTypeToBoolFromJson(Map json) => SimpleClassNullableOfEnumTypeToBool( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as bool), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as bool, + ), ), ); @@ -822,7 +839,10 @@ SimpleClassOfEnumTypeToBoolNullable _$SimpleClassOfEnumTypeToBoolNullableFromJson(Map json) => SimpleClassOfEnumTypeToBoolNullable( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as bool?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as bool?, + ), ), ); @@ -837,7 +857,10 @@ _$SimpleClassNullableOfEnumTypeToBoolNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToBoolNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as bool?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as bool?, + ), ), ); @@ -1046,7 +1069,7 @@ SimpleClassOfEnumTypeToDateTime _$SimpleClassOfEnumTypeToDateTimeFromJson( ) => SimpleClassOfEnumTypeToDateTime( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), DateTime.parse(e as String), ), ), @@ -1065,7 +1088,7 @@ _$SimpleClassNullableOfEnumTypeToDateTimeFromJson(Map json) => SimpleClassNullableOfEnumTypeToDateTime( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), DateTime.parse(e as String), ), ), @@ -1311,7 +1334,7 @@ _$SimpleClassOfEnumTypeToDateTimeNullableFromJson(Map json) => SimpleClassOfEnumTypeToDateTimeNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : DateTime.parse(e as String), ), ), @@ -1331,7 +1354,7 @@ _$SimpleClassNullableOfEnumTypeToDateTimeNullableFromJson( ) => SimpleClassNullableOfEnumTypeToDateTimeNullable( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : DateTime.parse(e as String), ), ), @@ -1557,8 +1580,10 @@ SimpleClassOfEnumTypeToDouble _$SimpleClassOfEnumTypeToDoubleFromJson( Map json, ) => SimpleClassOfEnumTypeToDouble( (json['value'] as Map).map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num).toDouble()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num).toDouble(), + ), ), ); @@ -1572,8 +1597,10 @@ SimpleClassNullableOfEnumTypeToDouble _$SimpleClassNullableOfEnumTypeToDoubleFromJson(Map json) => SimpleClassNullableOfEnumTypeToDouble( (json['value'] as Map?)?.map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num).toDouble()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num).toDouble(), + ), ), ); @@ -1775,7 +1802,7 @@ _$SimpleClassOfEnumTypeToDoubleNullableFromJson(Map json) => SimpleClassOfEnumTypeToDoubleNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), (e as num?)?.toDouble(), ), ), @@ -1792,8 +1819,10 @@ _$SimpleClassNullableOfEnumTypeToDoubleNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToDoubleNullable( (json['value'] as Map?)?.map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num?)?.toDouble()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num?)?.toDouble(), + ), ), ); @@ -2014,7 +2043,7 @@ SimpleClassOfEnumTypeToDuration _$SimpleClassOfEnumTypeToDurationFromJson( ) => SimpleClassOfEnumTypeToDuration( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), Duration(microseconds: (e as num).toInt()), ), ), @@ -2033,7 +2062,7 @@ _$SimpleClassNullableOfEnumTypeToDurationFromJson(Map json) => SimpleClassNullableOfEnumTypeToDuration( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), Duration(microseconds: (e as num).toInt()), ), ), @@ -2289,7 +2318,7 @@ _$SimpleClassOfEnumTypeToDurationNullableFromJson(Map json) => SimpleClassOfEnumTypeToDurationNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : Duration(microseconds: (e as num).toInt()), ), ), @@ -2309,7 +2338,7 @@ _$SimpleClassNullableOfEnumTypeToDurationNullableFromJson( ) => SimpleClassNullableOfEnumTypeToDurationNullable( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : Duration(microseconds: (e as num).toInt()), ), ), @@ -2549,7 +2578,7 @@ SimpleClassOfEnumTypeToDynamic _$SimpleClassOfEnumTypeToDynamicFromJson( Map json, ) => SimpleClassOfEnumTypeToDynamic( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e), + (k, e) => MapEntry($enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e), ), ); @@ -2563,7 +2592,8 @@ SimpleClassNullableOfEnumTypeToDynamic _$SimpleClassNullableOfEnumTypeToDynamicFromJson(Map json) => SimpleClassNullableOfEnumTypeToDynamic( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e), + (k, e) => + MapEntry($enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e), ), ); @@ -2669,7 +2699,10 @@ SimpleClassOfBigIntToEnumType _$SimpleClassOfBigIntToEnumTypeFromJson( Map json, ) => SimpleClassOfBigIntToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(BigInt.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + BigInt.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2685,7 +2718,10 @@ SimpleClassNullableOfBigIntToEnumType _$SimpleClassNullableOfBigIntToEnumTypeFromJson(Map json) => SimpleClassNullableOfBigIntToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(BigInt.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + BigInt.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2701,7 +2737,10 @@ SimpleClassOfDateTimeToEnumType _$SimpleClassOfDateTimeToEnumTypeFromJson( Map json, ) => SimpleClassOfDateTimeToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(DateTime.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + DateTime.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2717,8 +2756,10 @@ SimpleClassNullableOfDateTimeToEnumType _$SimpleClassNullableOfDateTimeToEnumTypeFromJson(Map json) => SimpleClassNullableOfDateTimeToEnumType( (json['value'] as Map?)?.map( - (k, e) => - MapEntry(DateTime.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + DateTime.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2734,7 +2775,7 @@ SimpleClassOfDynamicToEnumType _$SimpleClassOfDynamicToEnumTypeFromJson( Map json, ) => SimpleClassOfDynamicToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2748,7 +2789,8 @@ SimpleClassNullableOfDynamicToEnumType _$SimpleClassNullableOfDynamicToEnumTypeFromJson(Map json) => SimpleClassNullableOfDynamicToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => + MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2763,8 +2805,8 @@ SimpleClassOfEnumTypeToEnumType _$SimpleClassOfEnumTypeToEnumTypeFromJson( ) => SimpleClassOfEnumTypeToEnumType( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), - $enumDecode(_$EnumTypeEnumMap, e), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -2782,8 +2824,8 @@ _$SimpleClassNullableOfEnumTypeToEnumTypeFromJson(Map json) => SimpleClassNullableOfEnumTypeToEnumType( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), - $enumDecode(_$EnumTypeEnumMap, e), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -2800,7 +2842,10 @@ SimpleClassOfIntToEnumType _$SimpleClassOfIntToEnumTypeFromJson( Map json, ) => SimpleClassOfIntToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(int.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + int.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2816,7 +2861,10 @@ SimpleClassNullableOfIntToEnumType _$SimpleClassNullableOfIntToEnumTypeFromJson( Map json, ) => SimpleClassNullableOfIntToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(int.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + int.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2832,7 +2880,7 @@ SimpleClassOfObjectToEnumType _$SimpleClassOfObjectToEnumTypeFromJson( Map json, ) => SimpleClassOfObjectToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2846,7 +2894,8 @@ SimpleClassNullableOfObjectToEnumType _$SimpleClassNullableOfObjectToEnumTypeFromJson(Map json) => SimpleClassNullableOfObjectToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => + MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2860,7 +2909,7 @@ SimpleClassOfStringToEnumType _$SimpleClassOfStringToEnumTypeFromJson( Map json, ) => SimpleClassOfStringToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2874,7 +2923,8 @@ SimpleClassNullableOfStringToEnumType _$SimpleClassNullableOfStringToEnumTypeFromJson(Map json) => SimpleClassNullableOfStringToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => + MapEntry(k, $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)), ), ); @@ -2888,7 +2938,10 @@ SimpleClassOfUriToEnumType _$SimpleClassOfUriToEnumTypeFromJson( Map json, ) => SimpleClassOfUriToEnumType( (json['value'] as Map).map( - (k, e) => MapEntry(Uri.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + Uri.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2904,7 +2957,10 @@ SimpleClassNullableOfUriToEnumType _$SimpleClassNullableOfUriToEnumTypeFromJson( Map json, ) => SimpleClassNullableOfUriToEnumType( (json['value'] as Map?)?.map( - (k, e) => MapEntry(Uri.parse(k), $enumDecode(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + Uri.parse(k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2922,7 +2978,7 @@ _$SimpleClassOfBigIntToEnumTypeNullableFromJson(Map json) => (json['value'] as Map).map( (k, e) => MapEntry( BigInt.parse(k), - $enumDecodeNullable(_$EnumTypeEnumMap, e), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -2940,8 +2996,10 @@ _$SimpleClassNullableOfBigIntToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfBigIntToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => - MapEntry(BigInt.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + BigInt.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2959,7 +3017,7 @@ _$SimpleClassOfDateTimeToEnumTypeNullableFromJson(Map json) => (json['value'] as Map).map( (k, e) => MapEntry( DateTime.parse(k), - $enumDecodeNullable(_$EnumTypeEnumMap, e), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -2977,8 +3035,10 @@ _$SimpleClassNullableOfDateTimeToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfDateTimeToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => - MapEntry(DateTime.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + DateTime.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -2994,7 +3054,10 @@ SimpleClassOfDynamicToEnumTypeNullable _$SimpleClassOfDynamicToEnumTypeNullableFromJson(Map json) => SimpleClassOfDynamicToEnumTypeNullable( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3009,7 +3072,10 @@ _$SimpleClassNullableOfDynamicToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfDynamicToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3024,8 +3090,8 @@ _$SimpleClassOfEnumTypeToEnumTypeNullableFromJson(Map json) => SimpleClassOfEnumTypeToEnumTypeNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), - $enumDecodeNullable(_$EnumTypeEnumMap, e), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -3044,8 +3110,8 @@ _$SimpleClassNullableOfEnumTypeToEnumTypeNullableFromJson( ) => SimpleClassNullableOfEnumTypeToEnumTypeNullable( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), - $enumDecodeNullable(_$EnumTypeEnumMap, e), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), ), ), ); @@ -3062,7 +3128,10 @@ SimpleClassOfIntToEnumTypeNullable _$SimpleClassOfIntToEnumTypeNullableFromJson( Map json, ) => SimpleClassOfIntToEnumTypeNullable( (json['value'] as Map).map( - (k, e) => MapEntry(int.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + int.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3079,7 +3148,10 @@ _$SimpleClassNullableOfIntToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfIntToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry(int.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + int.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3095,7 +3167,10 @@ SimpleClassOfObjectToEnumTypeNullable _$SimpleClassOfObjectToEnumTypeNullableFromJson(Map json) => SimpleClassOfObjectToEnumTypeNullable( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3110,7 +3185,10 @@ _$SimpleClassNullableOfObjectToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfObjectToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3124,7 +3202,10 @@ SimpleClassOfStringToEnumTypeNullable _$SimpleClassOfStringToEnumTypeNullableFromJson(Map json) => SimpleClassOfStringToEnumTypeNullable( (json['value'] as Map).map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3139,7 +3220,10 @@ _$SimpleClassNullableOfStringToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfStringToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry(k, $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + k, + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3153,7 +3237,10 @@ SimpleClassOfUriToEnumTypeNullable _$SimpleClassOfUriToEnumTypeNullableFromJson( Map json, ) => SimpleClassOfUriToEnumTypeNullable( (json['value'] as Map).map( - (k, e) => MapEntry(Uri.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + Uri.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3170,7 +3257,10 @@ _$SimpleClassNullableOfUriToEnumTypeNullableFromJson( Map json, ) => SimpleClassNullableOfUriToEnumTypeNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry(Uri.parse(k), $enumDecodeNullable(_$EnumTypeEnumMap, e)), + (k, e) => MapEntry( + Uri.parse(k), + $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ), ), ); @@ -3275,7 +3365,7 @@ _$SimpleClassOfEnumTypeToFromJsonDynamicParamFromJson( ) => SimpleClassOfEnumTypeToFromJsonDynamicParam( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonDynamicParam.fromJson(e), ), ), @@ -3293,7 +3383,7 @@ _$SimpleClassNullableOfEnumTypeToFromJsonDynamicParamFromJson( ) => SimpleClassNullableOfEnumTypeToFromJsonDynamicParam( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonDynamicParam.fromJson(e), ), ), @@ -3515,7 +3605,7 @@ _$SimpleClassOfEnumTypeToFromJsonNullableObjectParamFromJson( ) => SimpleClassOfEnumTypeToFromJsonNullableObjectParam( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonNullableObjectParam.fromJson(e), ), ), @@ -3533,7 +3623,7 @@ _$SimpleClassNullableOfEnumTypeToFromJsonNullableObjectParamFromJson( ) => SimpleClassNullableOfEnumTypeToFromJsonNullableObjectParam( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonNullableObjectParam.fromJson(e), ), ), @@ -3759,7 +3849,7 @@ _$SimpleClassOfEnumTypeToFromJsonObjectParamFromJson( ) => SimpleClassOfEnumTypeToFromJsonObjectParam( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonObjectParam.fromJson(e as Object), ), ), @@ -3777,7 +3867,7 @@ _$SimpleClassNullableOfEnumTypeToFromJsonObjectParamFromJson( ) => SimpleClassNullableOfEnumTypeToFromJsonObjectParam( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), FromJsonObjectParam.fromJson(e as Object), ), ), @@ -3979,7 +4069,10 @@ SimpleClassOfEnumTypeToInt _$SimpleClassOfEnumTypeToIntFromJson( Map json, ) => SimpleClassOfEnumTypeToInt( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num).toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num).toInt(), + ), ), ); @@ -3993,7 +4086,10 @@ SimpleClassNullableOfEnumTypeToInt _$SimpleClassNullableOfEnumTypeToIntFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToInt( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num).toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num).toInt(), + ), ), ); @@ -4183,7 +4279,10 @@ SimpleClassOfEnumTypeToIntNullable _$SimpleClassOfEnumTypeToIntNullableFromJson( Map json, ) => SimpleClassOfEnumTypeToIntNullable( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num?)?.toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num?)?.toInt(), + ), ), ); @@ -4198,7 +4297,10 @@ _$SimpleClassNullableOfEnumTypeToIntNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToIntNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), (e as num?)?.toInt()), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + (e as num?)?.toInt(), + ), ), ); @@ -4388,7 +4490,10 @@ SimpleClassOfEnumTypeToNum _$SimpleClassOfEnumTypeToNumFromJson( Map json, ) => SimpleClassOfEnumTypeToNum( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as num), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as num, + ), ), ); @@ -4402,7 +4507,10 @@ SimpleClassNullableOfEnumTypeToNum _$SimpleClassNullableOfEnumTypeToNumFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToNum( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as num), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as num, + ), ), ); @@ -4592,7 +4700,10 @@ SimpleClassOfEnumTypeToNumNullable _$SimpleClassOfEnumTypeToNumNullableFromJson( Map json, ) => SimpleClassOfEnumTypeToNumNullable( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as num?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as num?, + ), ), ); @@ -4607,7 +4718,10 @@ _$SimpleClassNullableOfEnumTypeToNumNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToNumNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as num?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as num?, + ), ), ); @@ -4801,7 +4915,10 @@ SimpleClassOfEnumTypeToObject _$SimpleClassOfEnumTypeToObjectFromJson( Map json, ) => SimpleClassOfEnumTypeToObject( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as Object), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as Object, + ), ), ); @@ -4815,7 +4932,10 @@ SimpleClassNullableOfEnumTypeToObject _$SimpleClassNullableOfEnumTypeToObjectFromJson(Map json) => SimpleClassNullableOfEnumTypeToObject( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as Object), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as Object, + ), ), ); @@ -5010,7 +5130,8 @@ SimpleClassOfEnumTypeToObjectNullable _$SimpleClassOfEnumTypeToObjectNullableFromJson(Map json) => SimpleClassOfEnumTypeToObjectNullable( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e), + (k, e) => + MapEntry($enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e), ), ); @@ -5025,7 +5146,7 @@ _$SimpleClassNullableOfEnumTypeToObjectNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToObjectNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e), + (k, e) => MapEntry($enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e), ), ); @@ -5317,7 +5438,7 @@ SimpleClassOfEnumTypeToRecord _$SimpleClassOfEnumTypeToRecordFromJson( ) => SimpleClassOfEnumTypeToRecord( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), _$recordConvert( e, ($jsonValue) => ( @@ -5347,7 +5468,7 @@ _$SimpleClassNullableOfEnumTypeToRecordFromJson(Map json) => SimpleClassNullableOfEnumTypeToRecord( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), _$recordConvert( e, ($jsonValue) => ( @@ -5694,7 +5815,10 @@ SimpleClassOfEnumTypeToString _$SimpleClassOfEnumTypeToStringFromJson( Map json, ) => SimpleClassOfEnumTypeToString( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as String), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as String, + ), ), ); @@ -5708,7 +5832,10 @@ SimpleClassNullableOfEnumTypeToString _$SimpleClassNullableOfEnumTypeToStringFromJson(Map json) => SimpleClassNullableOfEnumTypeToString( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as String), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as String, + ), ), ); @@ -5901,7 +6028,10 @@ SimpleClassOfEnumTypeToStringNullable _$SimpleClassOfEnumTypeToStringNullableFromJson(Map json) => SimpleClassOfEnumTypeToStringNullable( (json['value'] as Map).map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as String?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as String?, + ), ), ); @@ -5916,7 +6046,10 @@ _$SimpleClassNullableOfEnumTypeToStringNullableFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToStringNullable( (json['value'] as Map?)?.map( - (k, e) => MapEntry($enumDecode(_$EnumTypeEnumMap, k), e as String?), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + e as String?, + ), ), ); @@ -6120,8 +6253,10 @@ SimpleClassOfEnumTypeToUri _$SimpleClassOfEnumTypeToUriFromJson( Map json, ) => SimpleClassOfEnumTypeToUri( (json['value'] as Map).map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), Uri.parse(e as String)), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + Uri.parse(e as String), + ), ), ); @@ -6137,8 +6272,10 @@ SimpleClassNullableOfEnumTypeToUri _$SimpleClassNullableOfEnumTypeToUriFromJson( Map json, ) => SimpleClassNullableOfEnumTypeToUri( (json['value'] as Map?)?.map( - (k, e) => - MapEntry($enumDecode(_$EnumTypeEnumMap, k), Uri.parse(e as String)), + (k, e) => MapEntry( + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), + Uri.parse(e as String), + ), ), ); @@ -6363,7 +6500,7 @@ SimpleClassOfEnumTypeToUriNullable _$SimpleClassOfEnumTypeToUriNullableFromJson( ) => SimpleClassOfEnumTypeToUriNullable( (json['value'] as Map).map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : Uri.parse(e as String), ), ), @@ -6383,7 +6520,7 @@ _$SimpleClassNullableOfEnumTypeToUriNullableFromJson( ) => SimpleClassNullableOfEnumTypeToUriNullable( (json['value'] as Map?)?.map( (k, e) => MapEntry( - $enumDecode(_$EnumTypeEnumMap, k), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, k), e == null ? null : Uri.parse(e as String), ), ), diff --git a/json_serializable/test/supported_types/input.type_record.g.dart b/json_serializable/test/supported_types/input.type_record.g.dart index 98e183040..9602adeee 100644 --- a/json_serializable/test/supported_types/input.type_record.g.dart +++ b/json_serializable/test/supported_types/input.type_record.g.dart @@ -526,8 +526,11 @@ SimpleClassOfEnumType _$SimpleClassOfEnumTypeFromJson( _$recordConvert( json['value'], ($jsonValue) => ( - $enumDecode(_$EnumTypeEnumMap, $jsonValue[r'$1']), - named: $enumDecode(_$EnumTypeEnumMap, $jsonValue['named']), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, $jsonValue[r'$1']), + named: $enumDecodeWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue['named'], + ), ), ), ); @@ -541,6 +544,7 @@ Map _$SimpleClassOfEnumTypeToJson( }, }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -548,14 +552,25 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullableOfEnumType _$SimpleClassNullableOfEnumTypeFromJson( Map json, ) => SimpleClassNullableOfEnumType( _$recordConvertNullable( json['value'], ($jsonValue) => ( - $enumDecode(_$EnumTypeEnumMap, $jsonValue[r'$1']), - named: $enumDecode(_$EnumTypeEnumMap, $jsonValue['named']), + $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, $jsonValue[r'$1']), + named: $enumDecodeWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue['named'], + ), ), ), ); @@ -577,8 +592,14 @@ SimpleClassOfEnumTypeNullable _$SimpleClassOfEnumTypeNullableFromJson( _$recordConvert( json['value'], ($jsonValue) => ( - $enumDecodeNullable(_$EnumTypeEnumMap, $jsonValue[r'$1']), - named: $enumDecodeNullable(_$EnumTypeEnumMap, $jsonValue['named']), + $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue[r'$1'], + ), + named: $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue['named'], + ), ), ), ); @@ -598,8 +619,14 @@ _$SimpleClassNullableOfEnumTypeNullableFromJson(Map json) => _$recordConvertNullable( json['value'], ($jsonValue) => ( - $enumDecodeNullable(_$EnumTypeEnumMap, $jsonValue[r'$1']), - named: $enumDecodeNullable(_$EnumTypeEnumMap, $jsonValue['named']), + $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue[r'$1'], + ), + named: $enumDecodeNullableWithDecodeMap( + _$EnumTypeEnumDecodeMap, + $jsonValue['named'], + ), ), ), ); diff --git a/json_serializable/test/supported_types/input.type_set.g.dart b/json_serializable/test/supported_types/input.type_set.g.dart index f7100e175..f76eb2f74 100644 --- a/json_serializable/test/supported_types/input.type_set.g.dart +++ b/json_serializable/test/supported_types/input.type_set.g.dart @@ -304,7 +304,7 @@ SimpleClassOfEnumType _$SimpleClassOfEnumTypeFromJson( Map json, ) => SimpleClassOfEnumType( (json['value'] as List) - .map((e) => $enumDecode(_$EnumTypeEnumMap, e)) + .map((e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toSet(), ); @@ -314,6 +314,7 @@ Map _$SimpleClassOfEnumTypeToJson( 'value': instance.value.map((e) => _$EnumTypeEnumMap[e]!).toList(), }; +// ignore: unused_element const _$EnumTypeEnumMap = { EnumType.alpha: 'alpha', EnumType.beta: 'beta', @@ -321,11 +322,19 @@ const _$EnumTypeEnumMap = { EnumType.delta: 'delta', }; +// ignore: unused_element +const _$EnumTypeEnumDecodeMap = { + 'alpha': EnumType.alpha, + 'beta': EnumType.beta, + 'gamma': EnumType.gamma, + 'delta': EnumType.delta, +}; + SimpleClassNullableOfEnumType _$SimpleClassNullableOfEnumTypeFromJson( Map json, ) => SimpleClassNullableOfEnumType( (json['value'] as List?) - ?.map((e) => $enumDecode(_$EnumTypeEnumMap, e)) + ?.map((e) => $enumDecodeWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toSet(), ); @@ -339,7 +348,7 @@ SimpleClassOfEnumTypeNullable _$SimpleClassOfEnumTypeNullableFromJson( Map json, ) => SimpleClassOfEnumTypeNullable( (json['value'] as List) - .map((e) => $enumDecodeNullable(_$EnumTypeEnumMap, e)) + .map((e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e)) .toSet(), ); @@ -353,7 +362,9 @@ SimpleClassNullableOfEnumTypeNullable _$SimpleClassNullableOfEnumTypeNullableFromJson(Map json) => SimpleClassNullableOfEnumTypeNullable( (json['value'] as List?) - ?.map((e) => $enumDecodeNullable(_$EnumTypeEnumMap, e)) + ?.map( + (e) => $enumDecodeNullableWithDecodeMap(_$EnumTypeEnumDecodeMap, e), + ) .toSet(), );