fix(graphcache): Improve Graphcache resolver consistency #3336
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.
Summary
While looking at a code snippet, I found that we didn't come back to providing
parent[info.fieldName]
for scalar resolvers. This is an easy way of making this work. It does add a bit of overhead, but I think it's the only way to add this without a breaking change (and without doing a weird set/delete dance, which is likely to be slower)The other issue is that
info.parentFieldKey
isn't consistently populated with thefieldKey
(as is implied and documented) but withinfo.parentKey
joined with thefieldKey
, i.e. a full key.This means that
cache.resolve(parent, info.parentFieldKey)
wouldn't work in resolvers, but would work in updaters.Set of changes
updateContext
calls to fixinfo.parentFieldKey
in resolversparent[fieldAlias]
andparent[fieldName]
set to the record value