flutter-ci

This package eliminates unnecessary characters from a GraphQL query, saving several bytes on requests.

final compressedQuery = compressGraphqlQuery(query);

GQL will serialize your query in a human-readable format after parse it to DocumentNodes. Therefore, we can't simple compress it before using the GQL parser.

To overcome this, we need to replace GQL RequestSerializer by RequestSerializerWithCompressor

return GraphQLClient(
  cache: GraphQLCache(store: null),
  link: HttpLink(
    _apiUrl,
    serializer: const RequestSerializerWithCompressor(),
  ),
);

The same applies to DioLink:

final link = DioLink(
  _apiUrl,
  client: Dio(),
  useGETForQueries: true,
  serializer: const RequestSerializerWithCompressor(),
);

Libraries

graphql_query_compress
Support for doing something awesome.