(core) - Reemit results as stale if they're refetched in the background #1375
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.
Resolve #1372
Summary
Usually we have a couple of refetches that are emitted as
cache-and-network
. In these cases the cache exchanges (default or Graphcache) take care of emitting a first result with thestale
flag set. In other cases we may have a subsequentnetwork-only
reexecution which happens in the background. In these cases no part of the exchange pipeline or theClient
took responsibility of emitting astale
result.This PR changes this behaviour to allows the
Client
'sexecuteRequestOperation
stream to add-on a singlestale
result onto a prior result if it detects anetwork-only
operation.threed-web
against Graphcache'scache.invalidate
which triggers anetwork-only
refetch.cache-only
Set of changes
switchMap
add-on stream per result that reemits the result asstale
if it detects anetwork-only
operation.stale
add-on result when the previous result wasn't alreadystale
cache-and-network
andcache-first
(with cache misses) too