Skip to content

Commit 51f201b

Browse files
committed
#124: updated type detector
1 parent 461bac9 commit 51f201b

File tree

1 file changed

+6
-33
lines changed

1 file changed

+6
-33
lines changed

lib/config/yml_generator_config.dart

+6-33
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,6 @@ class YmlGeneratorConfig {
180180
Field getField(String name, YamlMap property,
181181
{required bool disallowNullForDefaults}) {
182182
try {
183-
final required =
184-
property.containsKey('required') && property['required'] == true;
185183
final ignored =
186184
property.containsKey('ignore') && property['ignore'] == true;
187185
final includeFromJson = !property.containsKey('includeFromJson') ||
@@ -210,40 +208,15 @@ class YmlGeneratorConfig {
210208
if (type == null) {
211209
throw Exception('$name has no defined type');
212210
}
213-
final lowerType = type.toLowerCase();
214-
if (lowerType == 'object' ||
215-
lowerType == 'dynamic' ||
216-
lowerType == 'any') {
217-
itemType = DynamicType();
218-
} else if (type == 'bool' || lowerType == 'boolean') {
219-
itemType = BooleanType();
220-
} else if (lowerType == 'string') {
221-
itemType = StringType();
222-
} else if (lowerType == 'date' || lowerType == 'datetime') {
223-
itemType = DateTimeType();
224-
} else if (lowerType == 'double') {
225-
itemType = DoubleType();
226-
} else if (type == 'int' || type == 'integer') {
227-
itemType = IntegerType();
228-
} else if (lowerType == 'array') {
229-
final items = property['items'];
230-
final arrayType = items['type'];
231-
itemType = ArrayType(_makeGenericName(arrayType));
232-
} else if (lowerType == 'map') {
233-
final items = property['items'];
234-
final keyType = items['key'];
235-
final valueType = items['value'];
236-
itemType = MapType(
237-
key: _makeGenericName(keyType),
238-
valueName: _makeGenericName(valueType),
239-
);
240-
} else {
241-
itemType = ObjectType(type);
242-
}
211+
212+
final optional = type.endsWith('?');
213+
final typeString = optional ? type.substring(0, type.length - 1) : type;
214+
215+
itemType = _parseSimpleType(typeString);
243216
return Field(
244217
name: name,
245218
type: itemType,
246-
isRequired: required,
219+
isRequired: !optional,
247220
ignore: ignored,
248221
includeFromJson: includeFromJson,
249222
includeToJson: includeToJson,

0 commit comments

Comments
 (0)