Faiz Ahammed
Faiz Ahammed

Reputation: 41

How to remove typename from graph QL response in flutter

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

Answers (1)

0xManjeet
0xManjeet

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

Related Questions