Reputation: 41
can anyone help me to remove typename and unwanted fields from graph QL from flutter.how to get response as in postman. Iam using the package https://pub.dev/packages/graphql
Upvotes: 3
Views: 699
Reputation: 63
I had the same issue, I could not find a simple way to disable __typename, so I wrote a small program,
T removeTypename<T>(T data) =>
_removeUnwantedKeys(data, ['__typename']);
T _removeUnwantedKeys<T>(T data, List keysToRemove) {
if (data is Map && data.containsAnyOf(keysToRemove)) {
Map d = {};
data.forEach((key, value) {
if (!keysToRemove.contains(key)) d[key] = _removeUnwantedKeys(value,keysToRemove);
});
return d as T;
} else if (data is List)
return data.map((c) => _removeUnwantedKeys(c,keysToRemove)).toList() as T;
else
return data;
}
extension MapsMadeEasy<U, V> on Map<U, V>? {
bool containsAnyOf(List keys) {
if (this == null) return false;
return this!.entries.any((element) => keys.contains(element.key));
}
}
Upvotes: 1