flutter-ci

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

final compressedQuery = compressGraphqlQuery(query);

see example for input and output sample

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

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

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

Same deal with DioLink:

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

⚠️ This is still an experimental version. Use it carefully. Suggestions or contributions are appreciated

Libraries

graphql_query_compress
Support for doing something awesome.