normalizeMutationData static method
dynamic
normalizeMutationData(
- dynamic data, {
- String? parentKey,
- bool? convertEnums,
})
Implementation
static dynamic normalizeMutationData(dynamic data,
{String? parentKey, bool? convertEnums}) {
convertEnums = convertEnums ?? convertMutationEnums;
if (data is Map) {
final map =
data is Map<String, dynamic> ? data : Map<String, dynamic>.from(data);
final normalizedData = <String, dynamic>{};
for (final entry in map.entries) {
final key = entry.key;
final value = entry.value;
final enumType = _fieldToEnumType[key];
if (convertEnums &&
enumType != null &&
_knownEnumTypes.contains(enumType)) {
if (value is List) {
normalizedData[key] = value
.map((item) =>
item is String ? _convertEnumToGraphQLFormat(item) : item)
.toList();
continue;
} else if (value is String) {
normalizedData[key] = _convertEnumToGraphQLFormat(value);
continue;
}
}
if (convertEnums && value is String) {
if (value == 'asc' || value == 'desc') {
normalizedData[key] = value.toUpperCase();
continue;
}
}
normalizedData[key] = normalizeMutationData(value,
parentKey: key, convertEnums: convertEnums);
}
return normalizedData;
}
if (data is List) {
final enumType = parentKey != null ? _fieldToEnumType[parentKey] : null;
if (convertEnums &&
enumType != null &&
_knownEnumTypes.contains(enumType)) {
return data
.map((item) =>
item is String ? _convertEnumToGraphQLFormat(item) : item)
.toList();
}
return data
.map(
(item) => normalizeMutationData(item, convertEnums: convertEnums))
.toList();
}
return data;
}