-
Notifications
You must be signed in to change notification settings - Fork 469
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix __typename addition for InlineFragments #1286
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We need operation registration's __typename adding to match how Apollo Client does this in order for query hashes to match. In order to achieve parity here, I've added the __typename field to InlineFragments as well. While the __typename on an interface may be redundant (see new tests for example), it's also a safer change for me to recommend than anything within Apollo Client.
trevor-scheer
force-pushed
the
trevor/fix-missing-typenames
branch
from
May 20, 2019 21:49
484d57a
to
a978c49
Compare
Thank you for the quick fix @trevor-scheer! Will this me approved and merged today? :) |
abernix
approved these changes
May 21, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change itself looks great to me. 😄
hwillson
added a commit
that referenced
this pull request
Nov 9, 2021
The `withTypenameFieldAddedWhereNeeded` utility in `apollo-language-server` was updated in #1286 to make sure `__typename`'s are added to inline fragments, when used by commands like `client:push`. The `apollo-codegen-core` package currently uses its own copy of `withTypenameFieldAddedWhereNeeded` however, which was not updated. This means that operations can be registered (in Apollo's operation registry) via `client:push` that don't line up with the operations output by codegen. This commit adjusts the `apollo-codegen-core` package to use the same `withTypenameFieldAddedWhereNeeded` function as `apollo-language-server` (which is already a dependency of codegen), to make sure the operations output from codegen line up with the operations pushed via `client:push`.
hwillson
added a commit
that referenced
this pull request
Nov 9, 2021
The `withTypenameFieldAddedWhereNeeded` utility in `apollo-language-server` was updated in #1286 to make sure `__typename`'s are added to inline fragments, when used by commands like `client:push`. The `apollo-codegen-core` package currently uses its own copy of `withTypenameFieldAddedWhereNeeded` however, which was not updated. This means that operations can be registered (in Apollo's operation registry) via `client:push` that don't line up with the operations output by codegen. This commit adjusts the `apollo-codegen-core` package to use the same `withTypenameFieldAddedWhereNeeded` function as `apollo-language-server` (which is already a dependency of codegen), to make sure the operations output from codegen line up with the operations pushed via `client:push`.
hwillson
added a commit
that referenced
this pull request
Nov 9, 2021
The `withTypenameFieldAddedWhereNeeded` utility in `apollo-language-server` was updated in #1286 to make sure `__typename`'s are added to inline fragments, when used by commands like `client:push`. The `apollo-codegen-core` package currently uses its own copy of `withTypenameFieldAddedWhereNeeded` however, which was not updated. This means that operations can be registered (in Apollo's operation registry) via `client:push` that don't line up with the operations output by codegen. This commit adjusts the `apollo-codegen-core` package to use the same `withTypenameFieldAddedWhereNeeded` function as `apollo-language-server` (which is already a dependency of codegen), to make sure the operations output from codegen line up with the operations pushed via `client:push`.
hwillson
added a commit
that referenced
this pull request
Nov 11, 2021
The `withTypenameFieldAddedWhereNeeded` utility in `apollo-language-server` was updated in #1286 to make sure `__typename`'s are added to inline fragments, when used by commands like `client:push`. The `apollo-codegen-core` package currently uses its own copy of `withTypenameFieldAddedWhereNeeded` however, which was not updated. This means that operations can be registered (in Apollo's operation registry) via `client:push` that don't line up with the operations output by codegen. This commit adjusts the `apollo-codegen-core` package to use the same `withTypenameFieldAddedWhereNeeded` function as `apollo-language-server` (which is already a dependency of codegen), to make sure the operations output from codegen line up with the operations pushed via `client:push`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
We need operation registration (client:push)
__typename
adding to match how Apollo Client does this in order for query
hashes to match.
In order to achieve parity here, I've added the
__typename
fieldto InlineFragments as well. While the
__typename
on an interfacemay be redundant (see new tests for example), it's also a safer
change for me to recommend than anything within Apollo Client.
TODO:
*Make sure changelog entries note which project(s) has been affected. See older entries for examples on what this looks like.