How to remove typename from graph QL response in flutter

289

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

Share:
289
Faiz Ahammed
Author by

Faiz Ahammed

Updated on December 29, 2022

Comments

  • Faiz Ahammed
    Faiz Ahammed over 1 year

    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

  • Faiz Ahammed
    Faiz Ahammed almost 3 years
    thnks@0xManjeet