Skip to content

Commit f6614d3

Browse files
committed
Refactor some enum helpers
1 parent 16284aa commit f6614d3

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

json_serializable/lib/src/enum_utils.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,7 @@ JsonEnum _fromAnnotation(DartObject? dartObject) {
145145
final reader = ConstantReader(dartObject);
146146
return JsonEnum(
147147
alwaysCreate: reader.read('alwaysCreate').literalValue as bool,
148-
fieldRename: enumValueForDartObject(
149-
reader.read('fieldRename').objectValue,
150-
FieldRename.values,
151-
(f) => f.toString().split('.')[1],
152-
),
148+
fieldRename: readEnum(reader.read('fieldRename'), FieldRename.values)!,
153149
valueField: reader.read('valueField').literalValue as String?,
154150
);
155151
}

json_serializable/lib/src/utils.dart

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ Never throwUnsupported(FieldElement element, String message) =>
3232
element: element,
3333
);
3434

35-
FieldRename? _fromDartObject(ConstantReader reader) => reader.isNull
36-
? null
37-
: enumValueForDartObject(
38-
reader.objectValue,
39-
FieldRename.values,
40-
(f) => f.toString().split('.')[1],
41-
);
35+
T? readEnum<T extends Enum>(ConstantReader reader, List<T> values) =>
36+
reader.isNull
37+
? null
38+
: enumValueForDartObject<T>(
39+
reader.objectValue,
40+
values,
41+
(f) => f.name,
42+
);
4243

4344
T enumValueForDartObject<T>(
4445
DartObject source,
@@ -62,7 +63,7 @@ JsonSerializable _valueForAnnotation(ConstantReader reader) => JsonSerializable(
6263
disallowUnrecognizedKeys:
6364
reader.read('disallowUnrecognizedKeys').literalValue as bool?,
6465
explicitToJson: reader.read('explicitToJson').literalValue as bool?,
65-
fieldRename: _fromDartObject(reader.read('fieldRename')),
66+
fieldRename: readEnum(reader.read('fieldRename'), FieldRename.values),
6667
genericArgumentFactories:
6768
reader.read('genericArgumentFactories').literalValue as bool?,
6869
ignoreUnannotated: reader.read('ignoreUnannotated').literalValue as bool?,

0 commit comments

Comments
 (0)