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;
}