apollo-tooling icon indicating copy to clipboard operation
apollo-tooling copied to clipboard

suppressSwiftMultilineStringLiterals breaks operationIdentifiers for persisted queries

Open klep opened this issue 3 years ago • 0 comments

Intended outcome:

The operationId calculated by the server based on the queryDocument of a given operation matches the operationId output by Apollo, even when the classes are generated without multiline String literals.

Actual outcome:

The operationId created by Apollo is calculated when the query contains newlines, which are not included in the queryDocument provided by the generated classes. As a result, the hashes don't match and all query caching fails.

How to reproduce the issue:

  • Specify --suppressSwiftMultilineStringLiterals to Apollo codegen to get classes without multiline strings for queryDocument
  • Specify --operationIdsPath=*** to include SHA-256 hashes of each operation for query caching

Versions

2.33.9

klep avatar Feb 01 '22 23:02 klep