GenField.parse constructor
Implementation
factory GenField.parse(String name, Map<String, Object?> spec) {
final type = spec['type'] as String;
final isList = type.startsWith('list<');
final base = isList ? type.substring(5, type.length - 1) : type;
final kind = GenFieldKind.parseBase(base);
return GenField(
name: name,
kind: kind,
isList: isList,
required: (spec['required'] as bool?) ?? false,
description: (spec['description'] as String?) ?? '',
deprecated: (spec['deprecated'] as bool?) ?? false,
enumValues: ((spec['values'] as List?) ?? const []).cast<String>(),
referenceModel: spec['model'] as String?,
fileCollection: spec['fileCollection'] as String?,
mapFields: [
for (final entry
in ((spec['fields'] as Map?) ?? const {})
.cast<String, Object?>()
.entries)
GenField.parse(
entry.key,
(entry.value as Map).cast<String, Object?>(),
),
],
hasReadTimeDefault: spec.containsKey('readTimeDefault'),
);
}