-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Stop calling addTypenameToDocument before InMemoryCache reads/writes. #5320
Merged
benjamn
merged 1 commit into
release-3.0
from
add-typename-to-cache-results-without-transforming-queries
Sep 13, 2019
Merged
Stop calling addTypenameToDocument before InMemoryCache reads/writes. #5320
benjamn
merged 1 commit into
release-3.0
from
add-typename-to-cache-results-without-transforming-queries
Sep 13, 2019
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
Adding __typename fields to the query by calling addTypenameToDocument used to be necessary for writing results to the cache, but now __typename fields in result objects are automatically written to the cache, so no transformation is necessary. ApolloClient still calls cache.transformDocument to get a query with __typename fields to send to the server, and the cache still relies on results from the server coming back with __typename fields, but the cache no longer needs the query to be transformed to include __typename. Compared to PR #5311, this commit should not be a breaking change.
This was referenced Sep 13, 2019
Merged
hwillson
approved these changes
Sep 13, 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.
Looks good @benjamn - thanks!
dataIdFromObject: this.config.dataIdFromObject, | ||
}); | ||
|
||
this.broadcastWatches(); | ||
} | ||
|
||
public diff<T>(query: Cache.DiffOptions): Cache.DiffResult<T> { | ||
public diff<T>(options: Cache.DiffOptions): Cache.DiffResult<T> { |
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.
Thanks for changing these to options
👌.
StephenBarlow
pushed a commit
that referenced
this pull request
Oct 1, 2019
…#5320) Adding __typename fields to the query by calling addTypenameToDocument used to be necessary for writing results to the cache, but now __typename fields in result objects are automatically written to the cache, so no transformation is necessary. ApolloClient still calls cache.transformDocument to get a query with __typename fields to send to the server, and the cache still relies on results from the server coming back with __typename fields, but the cache no longer needs the query to be transformed to include __typename. Compared to PR #5311, this commit should not be a breaking change.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Adding
__typename
fields to the query by callingaddTypenameToDocument
used to be necessary for writing results to the cache, but now (thanks to this PR)__typename
fields in result objects are automatically written to the cache, so no transformation is necessary.ApolloClient still calls
cache.transformDocument
to get a query with__typename
fields to send to the server, and the cache still relies on results from the server coming back with__typename
fields, but the cache no longer needs the query to be transformed to include__typename
.Compared to PR #5311, this commit should not be a breaking change. PR #5311 ultimately failed because hiding
__typename
fields threatened to disruptreadFragment
=> transform =>writeFragment
workflows, becausewriteFragment
needs__typename
information to work properly, soreadFragment
must return that information.