feat(persisted): Replace persistedFetchExchange with generic persistedExchange #3057
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.
Resolves #2988
Resolves #2989
Summary
This change modifies
@urql/core/internal
to know how to modifyFetchBody
according to the (Automatic) Persisted Queries specification, leaving outquery
as needed.The
persistedExchange
replacespersistedFetchExchange
and hence also now works with third-party transports and thesubscriptionExchange
.Types have been added to
@urql/core
to reflect theextensions.persistedQuery
spec, with an addedmiss?: boolean
field, which is set whenquery
must be included again (i.e. when a persisted query "misses", via APQ)The
persistedExchange
must hence now be placed in front of the default fetch exchange, and/or in front of asubscriptionExchange
that handles queries.The package has been renamed to
@urql/exchange-persisted
to reflect this.Set of changes
@urql/exchange-persisted-fetch
to@urql/exchange-persisted
persistedQuery
types to extensions on@urql/core
query
inmakeFetchBody
persistedExchange
replacingpersistedFetchExchange
with generic retry logic