Skip to content

Commit 39120a6

Browse files
fix: List of Enums defined as integer fail the conversion fromJson
1 parent a08d9a4 commit 39120a6

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lib/src/code_generators/enum_model.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,14 @@ const $name(this.value);
107107
String generateFromJsonToJson([bool caseSensitive = true]) {
108108
final type = isInteger ? 'int' : 'String';
109109

110-
String enumParse(bool nullCheck) => caseSensitive
110+
String enumParse(bool nullCheck) => caseSensitive || isInteger
111111
? 'return enums.$name.values.firstWhereOrNull((e) => e.value == ${name.camelCase}) ?? defaultValue'
112112
: 'return enums.$name.values.firstWhereOrNull((e) => e.value.toString().toLowerCase() == ${name.camelCase}${nullCheck ? '?' : ''}.toString().toLowerCase()) ?? defaultValue';
113113

114+
final enumListFromJsonReturn = isInteger
115+
? 'return ${name.camelCase}.map((e) => ${name.camelCase}FromJson(e)).toList()'
116+
: 'return ${name.camelCase}.map((e) => ${name.camelCase}FromJson(e.toString())).toList()';
117+
114118
return '''
115119
$type? ${name.camelCase}NullableToJson(enums.$name? ${name.camelCase}) {
116120
return ${name.camelCase}?.value;
@@ -167,9 +171,7 @@ List<enums.$name> ${name.camelCase}ListFromJson(
167171
return defaultValue ?? [];
168172
}
169173
170-
return ${name.camelCase}
171-
.map((e) => ${name.camelCase}FromJson(e.toString()))
172-
.toList();
174+
$enumListFromJsonReturn;
173175
}
174176
175177
@@ -182,9 +184,7 @@ List<enums.$name>? ${name.camelCase}NullableListFromJson(
182184
return defaultValue;
183185
}
184186
185-
return ${name.camelCase}
186-
.map((e) => ${name.camelCase}FromJson(e.toString()))
187-
.toList();
187+
$enumListFromJsonReturn;
188188
}
189189
''';
190190
}

0 commit comments

Comments
 (0)