feat(core): Implement mapExchange (replacing errorExchange) #2846
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.
Supersedes #1743
Summary
This avoids the breaking change in #1743 and finally replaces it with a complete
mapExchange
implementation that's similar but doesn't change thedebugExchange
.The
mapExchange
is API-backwards compatible with theerrorExchange
and theerrorExchange
's export has been replaced withmapExchange
.The
mapExchange
exposes three options it accepts:onOperation
: Allowing it to react to and replace operationsonResult
: Allowing it to react to and replace resultsonError
: Allowing it to react to errors on resultsThe
onError
option is provided for backwards-compatibility with theerrorExchange
The
onOperation
andonResult
functions may respectively,undefined | void
which will cause them to not replace the incoming operations/resultsSet of changes
mapExchange
errorExchange
export withmapExchange