Add a graphql-js compatible-ish error serialization for Apollo Router #853
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With some additions to the error structures to pass through the data required.
This PR adds a
.unstable_to_json_compat()
function to diagnostics that returns best-effort error messages in the graphql-js format. Some things like "Did you mean?" are omitted intentionally. There are minor differences in a handful of other messages, but much fewer than before, and hopefully it'll be obvious to users that the meaning is the same. One example difference is theUnsupportedValueType
message, which in graphql-js is a customisable type-specific validation, but in apollo-rs is a fixed check based only on what the spec knows about builtin scalars, so the error is a bit less specific.The new API is only meant for use in the Apollo Router, temporarily, exempt from semver, and any other users will not be supported.