The shared core for the highly customizable and versatile GraphQL client
Last release 2 months ago
22 Jun 2026
Release timing varies
gaps range from 2 weeks to 10 months
Most releases are documented
notes for 67 of 106 stable releases
4 versions withdrawn
withdrawn after publishing
7 years old
283 releases · first in 2020
Release timeline
283 releases since 2020Releases
- 4.2.3-canary-93d7256a17 Jan 2024pre-release
Nothing published for this version
- 4.2.3-canary-1fabe35817 Jan 2024pre-release
Nothing published for this version
- 4.2.212 Dec 2023
Release notes
Open source →Patch Changes
- Add type for
hasNextto the query and mutation results Submitted by @JoviDeCroock (See #3703)
Release notes
Open source →Patch Changes
- ⚠️ Fix the default
cacheExchangecrashing oncache-onlyrequest policies with cache misses due toundefinedresults Submitted by @JoviDeCroock (See #3459)
- Add type for
- 4.2.2-canary-d5d3c97a12 Dec 2023pre-release
Nothing published for this version
- 4.2.110 Dec 2023
Release notes
Open source →Patch Changes
- add support for Svelte 5 in the
peerDependenciesSubmitted by @itssumitrai (See #3634)
Release notes
Open source →Patch Changes
- ⚠️ Fix incorrect JSON stringification of objects from different JS contexts. This could lead to invalid variables being generated in the Vercel Edge runtime specifically Submitted by @SoraKumo001 (See #3453)
- add support for Svelte 5 in the
- 4.2.1-canary-993a017b10 Dec 2023pre-release
Nothing published for this version
- 4.2.1-canary-1d6be50910 Dec 2023pre-release
Nothing published for this version
- 4.2.014 Nov 2023
Release notes
Open source →Minor Changes
- Mark
@urql/coreas a peer dependency as well as a regular dependency Submitted by @kitten (See #3579)
Patch Changes
Release notes
Open source →Minor Changes
- Add option to enable persisted-operations for subscriptions Submitted by @JoviDeCroock (See #3549)
Release notes
Open source →Minor Changes
- Try to parse
text/plaincontent-type as JSON before bailing out with an error Submitted by @JoviDeCroock (See #3430)
- Mark
- 4.2.0-canary-94e0c31014 Nov 2023pre-release
Nothing published for this version
- 4.1.419 Oct 2023
Release notes
Open source →Patch Changes
- Implement new
@defer/@streamtransport protocol spec changes Submitted by @JoviDeCroock (See #3389) - Support non spec-compliant error bodies, i.e. the Shopify API does return
errorsbut as an object. Adding a check whether we are really dealing with an Array of errors enables this Submitted by @JoviDeCroock (See #3395) - ⚠️ Fix
preferGetMethod: 'force' | 'within-url-limit'not being applied correctly by theClientSubmitted by @Burbenog (See #3403)
- Implement new
- 4.1.4-canary-f66de5be19 Oct 2023pre-release
Nothing published for this version
- 4.1.4-canary-c35e7a989 Oct 2023pre-release
Nothing published for this version
- 4.1.4-canary-812385d419 Oct 2023pre-release
Nothing published for this version
- 4.1.4-canary-423897f919 Oct 2023pre-release
Nothing published for this version
- 4.1.4-canary-052d5f4926 Sept 2023pre-release
Nothing published for this version
- 4.1.318 Sept 2023
- 4.1.3-canary-643f426a18 Sept 2023pre-release
Nothing published for this version
- 4.1.231 Aug 2023
Release notes
Open source →Patch Changes
- Omit minified files and sourcemaps'
sourcesContentin published packages Submitted by @kitten (See #3755) - Updated dependencies (See #3755)
- @urql/[email protected]
- Omit minified files and sourcemaps'
- 4.1.2-canary-7ee3678831 Aug 2023pre-release
Nothing published for this version
- 4.1.2-canary-6431511430 Aug 2023pre-release
Nothing published for this version
- 4.1.130 Jul 2023
Release notes
Open source →Patch Changes
- Add type for
hasNextto the query and mutation results Submitted by @JoviDeCroock (See #3703)
Release notes
Open source →Patch Changes
- Updated dependencies (See #3520, #3553, and #3520)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- Warn about cached persisted-miss results in development, when a
persistedExchange()sees a persisted-miss error for a result that's already seen a persisted-miss error (i.e. two misses). This shouldn't happen unless something is caching persisted errors and we should warn about this appropriately Submitted by @kitten (See #3442)
Release notes
Open source →Patch Changes
- Add case for
subscriptionExchangeto handleGraphQLError[]received in theerrorobserver callback. Note: This doesn't strictly check for theGraphQLErrorshape and only checks for arrays and receiving errors in theExecutionResulton thenextobserver callback is preferred and recommended for transports Submitted by @kitten (See #3346)
- Add type for
- 4.1.1-canary-f9ea1db430 Jul 2023pre-release
Nothing published for this version
- 4.1.021 Jul 2023
Release notes
Open source →Minor Changes
- Mark
@urql/coreas a peer dependency as well as a regular dependency Submitted by @kitten (See #3579)
Patch Changes
Release notes
Open source →Minor Changes
- Add back the
reexecutefunction Submitted by @JoviDeCroock (See #3472)
Patch Changes
- Updated dependencies (See #3514, #3505, #3499, and #3515)
- @urql/[email protected]
Release notes
Open source →Minor Changes
- Allow persisted query logic to be skipped by the
persistedExchangeif the passedgenerateHashfunction resolves to a nullish value. This allows (A)PQ to be selectively disabled for individual operations Submitted by @kitten (See #3324)
Patch Changes
- Updated dependencies (See #3317 and #3308)
- @urql/[email protected]
Release notes
Open source →Minor Changes
- Update
formatDocumentto outputFormattedNodetype mapping. The formatter will now annotate added__typenamefields with_generated: true, place selection nodes' directives onto a_directivesdictionary, and will filter directives to not include"_"underscore prefixed directives in the final query. This prepares us for a feature that allows enhanced client-side directives in Graphcache Submitted by @kitten (See #3317)
Patch Changes
- Mark
- 4.1.0-canary-d6bdd72e21 Jul 2023pre-release
Nothing published for this version
- 4.1.0-canary-d3eb256d19 Jul 2023pre-release
Nothing published for this version
- 4.1.0-canary-c37a0fc319 Jul 2023pre-release
Nothing published for this version
- 4.1.0-canary-aeb6b44c21 Jul 2023pre-release
Nothing published for this version
- 4.1.0-canary-889ca4db21 Jul 2023pre-release
Nothing published for this version
- 4.1.0-canary-2acc629821 Jul 2023pre-release
Nothing published for this version
- 4.0.12-canary-7ddccc1319 Jul 2023pre-release
Nothing published for this version
- 4.0.1112 Jul 2023
Release notes
Open source →Patch Changes
- Re-order
maskTypenameto apply masking earlier in the chain Submitted by @kitten (See #3298) - ⚠️ Fix
ssrExchangenot formatting query documents usingformatDocument. Without this call we'd run the risk of not having__typenameavailable on the client-side when rehydrating Submitted by @kitten (See #3288) - Add deprecation notice for
maskTypenameoption. Masking typenames in a result is no longer recommended. It’s only useful when multiple pre-conditions are applied and inferior to mapping to an input object manually Submitted by @kitten (See #3299)
- Re-order
- 4.0.11-canary-caa029e08 Jul 2023pre-release
Nothing published for this version
- 4.0.11-canary-c074a50427 Jun 2023pre-release
Nothing published for this version
- 4.0.11-canary-8b8cf54a30 Jun 2023pre-release
Nothing published for this version
- 4.0.11-canary-657bd0c612 Jul 2023pre-release
Nothing published for this version
- 4.0.11-canary-1cf2e2ff12 Jul 2023pre-release
Nothing published for this version
- 4.0.11-canary-19d2674828 Jun 2023pre-release
Nothing published for this version
- 4.0.101 Jun 2023
Release notes
Open source →Patch Changes
- Add missing
fetchSubscriptionsentry toOperationContext. The Client’sfetchSubscriptionsnow works properly and can be used to execute subscriptions as multipart/event-stream requests Submitted by @kitten (See #3244) - ⚠️ Fix
fetchSourcenot working for subscriptions sincehasNextisn’t necessarily set Submitted by @kitten (See #3244)
- Add missing
- 4.0.91 Jun 2023
Release notes
Open source →Patch Changes
- Return
AbortControllerinvocation to previous behaviour where it used to be more forceful. It will now properly abort outside of when our generator yields results, and hence now also cancels requests again that have already delivered headers but are currently awaiting a response body Submitted by @kitten (See #3239)
- Return
- 4.0.831 May 2023
Release notes
Open source →Patch Changes
- Respect
additionalTypenameson subscriptions and re-execute queries for them as well, as one would intuitively expect Submitted by @kitten (See #3230) - Update build process to generate correct source maps Submitted by @kitten (See #3201)
- Don't allow
isSubscriptionOperationoption insubscriptionExchangeto includeteardownoperations, to avoid confusion Submitted by @kitten (See #3206)
- Respect
- 4.0.725 Apr 2023
Release notes
Open source → - 4.0.620 Apr 2023
- 4.0.520 Apr 2023
Release notes
Open source →Patch Changes
- Updated dependencies (See #3520, #3553, and #3520)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- Replace
FileandBlobobjects withnullin variables if multipart request will be started Submitted by @kitten (See #3169) - Strictly deduplicate
cache-and-networkandnetwork-onlyoperations, while a non-stale response is being waited for Submitted by @kitten (See #3157) - ⚠️ Fix boundary stopping
multipart/mixedstreams when it randomly occurs in response payloads Submitted by @kitten (See #3155) - Improve dispatching of arbitrary operations using
reexecuteOperationSubmitted by @kitten (See #3159)
- Updated dependencies (See #3520, #3553, and #3520)
- 4.0.47 Apr 2023
Release notes
Open source →Patch Changes
- Prioritise
context.suspenseand fallback to checkingclient.suspenseSubmitted by @JoviDeCroock (See #3427) - Updated dependencies (See #3430)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- ⚠️ Fix
queryStoreandsubscriptionStorenot subscribing whenwritablecalls itsStartStopNotifier. This caused both stores to be inactive and become unresponsive when they’ve been unsubscribed from once, as they wouldn’t be able to restart their subscriptions to theClientSubmitted by @kitten (See #3331)
- Prioritise
- 4.0.36 Apr 2023
Release notes
Open source →Patch Changes
- Updated peer dependency range to include support for Svelte
^4.0.0Submitted by @ategen3rt (See #3302)
- Updated peer dependency range to include support for Svelte
- 4.0.21 Apr 2023
Release notes2 sources agree
Open source → - 4.0.131 Mar 2023
Release notes2 sources agree
Open source → - 4.0.031 Mar 2023
Release notes
Open source →Major Changes
- Update the
preferGetForPersistedQueriesoption to include the'force'and'within-url-limit'values from the Client'spreferGetMethodoption. The default value oftrueno longer setsOperationContext'spreferGetMethodsetting to'force'. Instead, the value ofpreferGetForPersistedQueriescarries through to theOperationContext'spreferGetMethodsetting for persisted queries Submitted by @NWRichmond (See #3192)
Release notes
Open source →Major Changes
- Update
OperationResult.hasNextandOperationResult.staleto be required fields. If you have a custom exchange creating results, you'll have to add these fields or use themakeResult,mergeResultPatch, ormakeErrorResulthelpers Submitted by @kitten (See #3061) - Move
handler, which combines subscription events, frommutationStoretosubscriptionStore. It’s accidentally been defined and implemented on the wrong store and was meant to be onsubscriptionStoreSubmitted by @kitten (See #3078)
Minor Changes
- Allow mutations to update their results in bindings when
hasNext: trueis set, which indicates deferred or streamed results Submitted by @kitten (See #3103)
Patch Changes
- ⚠️ Fix source maps included with recently published packages, which lost their
sourcesContent, including additional source files, and had incorrect paths in some of them Submitted by @kitten (See #3053) - Upgrade to
wonka@^6.3.0Submitted by @kitten (See #3104) - Add TSDocs to all
urqlbindings packages Submitted by @kitten (See #3079) - Updated dependencies (See #3101, #3033, #3054, #3053, #3060, #3081, #3039, #3104, #3082, #3097, #3061, #3055, #3085, #3079, #3087, #3059, #3055, #3057, #3050, #3062, #3051, #3043, #3063, #3054, #3102, #3097, #3106, #3058, and #3062)
- @urql/[email protected]
Release notes
Open source →Major Changes
- Remove the default
ClientfromContext. Previously,urqlkept a legacy default client in its context, with default exchanges and calling an API at/graphql. This has now been removed and you will have to create your ownClientif you were relying on this behaviour Submitted by @JoviDeCroock (See #3033)
Minor Changes
- Allow mutations to update their results in bindings when
hasNext: trueis set, which indicates deferred or streamed results Submitted by @kitten (See #3103)
Patch Changes
- ⚠️ Fix source maps included with recently published packages, which lost their
sourcesContent, including additional source files, and had incorrect paths in some of them Submitted by @kitten (See #3053) - Upgrade to
wonka@^6.3.0Submitted by @kitten (See #3104) - Add TSDocs to all
urqlbindings packages Submitted by @kitten (See #3079) - Updated dependencies (See #3101, #3033, #3054, #3053, #3060, #3081, #3039, #3104, #3082, #3097, #3061, #3055, #3085, #3079, #3087, #3059, #3055, #3057, #3050, #3062, #3051, #3043, #3063, #3054, #3102, #3097, #3106, #3058, and #3062)
- @urql/[email protected]
Release notes
Open source →Major Changes
-
Remove
defaultExchangesfrom@urql/coreand makeexchangesa required property onClientconstruction. In doing so we make theurqlpackage more tree-shakeable as the three default exchanges are in no code paths meaning they can be removed if not used. A migration would look as follows if you are currently creating a client without exchangesimport { createClient, cacheExchange, fetchExchange } from '@urql/core'; const client = createClient({ url: '', exchanges: [cacheExchange, fetchExchange], });Submitted by @JoviDeCroock (See #3033)
-
Update
subscriptionExchangeto receiveFetchBodyinstead. In the usual usage ofsubscriptionExchange(for instance withgraphql-ws) you can expect no breaking changes. However, thekeyandextensionsfield has been removed and instead theforwardSubscriptionfunction receives the fullOperationas a second argument Submitted by @kitten (See #3054) -
Remove dependence on
graphqlpackage and replace it with@0no-co/graphql.web, which reduces the default bundlesize impact ofurqlpackages to a minimum. All types should remain compatible, even if you usegraphqlelsewhere in your app, and if other dependencies are usinggraphqlyou may alias it tographql-web-liteSubmitted by @kitten (See #3097) -
Update
OperationResult.hasNextandOperationResult.staleto be required fields. If you have a custom exchange creating results, you'll have to add these fields or use themakeResult,mergeResultPatch, ormakeErrorResulthelpers Submitted by @kitten (See #3061) -
Remove
getOperationNameexport from@urql/coreSubmitted by @kitten (See #3062)
Minor Changes
- Return a new
OperationResultSourcefrom allClientmethods (which replacesPromisifiedSourceon shortcut methods). This allows not onlytoPromise()to be called, but it can also be used as an awaitablePromiseLikeand has a.subscribe(onResult)method aliasing the subscribe utility fromwonkaSubmitted by @kitten (See #3060) - Update
subscriptionExchangeto support incremental results out of the box. If a subscription proactively completes, results are also now updated withhasNext: falseSubmitted by @kitten (See #3055) - Implement
text/event-streamresponse support. This generally adheres to the GraphQL SSE protocol and GraphQL Yoga push responses, and is an alternative tomultipart/mixedSubmitted by @kitten (See #3050) - Implement GraphQL Multipart Request support in
@urql/core. This adds the File/Blob upload support to@urql/core, which effectively deprecates@urql/exchange-multipart-fetchSubmitted by @kitten (See #3051) - Support
GraphQLRequest.extensionsas spec-extensions input to GraphQL requests Submitted by @kitten (See #3054) - Allow subscriptions to be handled by the
fetchExchangewhenfetchSubscriptionsis turned on Submitted by @kitten (See #3106) - Deprecate the
dedupExchange. The functionality of deduplicating queries and subscriptions has now been moved into and absorbed by theClient. Previously, theClientalready started doing some work to share results between queries, and to avoid dispatching operations as needed. It now only dispatches operations strictly when thededupExchangewould allow so as well, moving its logic into theClientSubmitted by @kitten (See #3058)
Patch Changes
- Deduplicate operations as the
dedupExchangedid; by filtering out duplicate operations until either the original operation has been cancelled (teardown) or a first result (withouthasNext: true) has come in Submitted by @kitten (See #3101) - ⚠️ Fix source maps included with recently published packages, which lost their
sourcesContent, including additional source files, and had incorrect paths in some of them Submitted by @kitten (See #3053) - Allow
makeOperationto be called with a partialOperationContextwhen it’s called to copy an operation. When it receives anOperationas a second argument now, the third argument, the context, will be spread into the prioroperation.contextSubmitted by @kitten (See #3081) - Move
multipart/mixedto end ofAcceptheader to avoid cauing Yoga to unnecessarily use it Submitted by @JoviDeCroock (See #3039) - Upgrade to
wonka@^6.3.0Submitted by @kitten (See #3104) - Update
Exchangecontract andcomposeExchangesutility to remove the need to manually callshareon either incomingSource<Operation>orforward()’sSource<OperationResult>. This is now taken care of internally incomposeExchangesand should make it easier for you to create custom exchanges and for us to explain them Submitted by @kitten (See #3082) - Add support for
graphql’s built-inTypedQueryDocumentNodetypings for type inference Submitted by @kitten (See #3085) - Add missing type exports of SSR-related types (
SerializedResult,SSRExchangeParams,SSRExchange, andSSRData) to@urql/core's type exports Submitted by @kitten (See #3079) - Allow any object fitting the
GraphQLErrorshape to rehydrate without passing through aGraphQLErrorconstructor inCombinedErrorSubmitted by @kitten (See #3087) - Add missing
hasNextandstalepassthroughs on caching exchanges Submitted by @kitten (See #3059) - ⚠️ Fix incremental results not merging
errorsfrom subsequent non-incremental results Submitted by @kitten (See #3055) - Add logic for
request.extensions.persistedQueryto@urql/coreto omit sendingqueryas needed Submitted by @kitten (See #3057) - ⚠️ Fix incorrect operation name being picked from queries that contain multiple operations Submitted by @kitten (See #3062)
- Replace fetch source implementation with async generator implementation, based on Wonka's
fromAsyncIterable. This also further hardens our support for the "Incremental Delivery" specification and refactors its implementation and covers more edge cases Submitted by @kitten (See #3043) - Ensure network errors are always issued with
CombinedErrors, while downstream errors are re-thrown Submitted by @kitten (See #3063) - Refactor
Clientresult source construction code and allow multiple mutation results, ifresult.hasNexton a mutation result is set totrue, indicating deferred or streamed results Submitted by @kitten (See #3102) - Remove dependence on
import { visit } from 'graphql';with smaller but functionally equivalent alternative Submitted by @kitten (See #3097)
- Update the
- 3.2.210 Mar 2023
Release notes
Open source →Patch Changes
- ⚠️ Fix generated empty
Variablestype as passed to generics, that outputs a type of{ [var: string]: never; }. A legacy/unsupported version oftypescript-urql, which wrapsurql's React hooks, generates empty variables types as the following code snippet, which is not detected:
Submitted by @kitten (See #3029)type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; type Variables = Exact<{ [key: string]: never }>;
- ⚠️ Fix generated empty
- 3.2.19 Mar 2023
Release notes
Open source →Patch Changes
- Bump to
@urql/[email protected]due to invalid3.2.0release Submitted by @kitten (Seea84268db)
- Bump to
- 3.2.07 Mar 2023
Nothing published for this version
- 3.1.19 Dec 2022
Release notes
Open source →Patch Changes
- Correctly mark cache-hits from the ssr-exchange, by @JoviDeCroock (See #2872)
- ⚠️ Fix type-generation, with a change in TS/Rollup the type generation took the paths as src and resolved them into the types dir, by @JoviDeCroock (See #2870)
- ⚠️ Fix regression in
@urql/core'sstringifyDocumentthat caused some formatted documents to not be reprinted, by @JoviDeCroock (See #2871)
- 3.1.08 Dec 2022
Release notes
Open source →Minor Changes
- Implement
mapExchange, which replaceserrorExchange, allowingonOperationandonResultto be called to either react to or replace operations and results. For backwards compatibility, this exchange is also exported aserrorExchangeand supportsonError, by @kitten (See #2846)
Patch Changes
- Move remaining
Variablesgenerics over fromobjectdefault toVariables extends AnyVariables = AnyVariables. This has been introduced previously in #2607 but some missing ports have been missed due to TypeScript not catching them previously. Depending on your TypeScript version theobjectdefault is incompatible withAnyVariables, by @kitten (See #2843) - Reuse output of
stringifyDocumentin place of repeatedprint. This will mean that we now prevent callingprintrepeatedly for identical operations and are instead only reusing the result once. This change has a subtle consequence of our internals. Operation keys will change due to this refactor and we will no longer sanitise strip newlines from queries that@urql/corehas printed, by @kitten (See #2847) - Update to
wonka@^6.1.2to fix memory leak infetchcaused in Node.js by a lack of clean up after initiating a request, by @kitten (See #2850)
- Implement
- 3.0.525 Oct 2022
Release notes
Open source →Patch Changes
- Update typings of the client to encompass the changes of https://github.com/FormidableLabs/urql/pull/2692, by @c-schwan (See #2758)
- ⚠️ Fix case where our transform-debug-target babel plugin would override the root dispatchDebug in
compose.tswith the latest found exchange, in this casefetchExchange, by @JoviDeCroock (See #2762)
- 3.0.414 Oct 2022
Release notes
Open source →Patch Changes
- ⚠️ Fix type utilities turning the
variablesproperties optional when a type fromTypedDocumentNodehas noVariablesor all optionalVariables. Previously this would break for wrappers, e.g. in code generators, or when the type didn't quite match what we'd expect Submitted by @kitten (See #3022) - Updated dependencies (See #3007, #2962, #3007, #3015, and #3022)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- ⚠️ Fix
ssrExchangebug which preventedstaleWhileRevalidatefrom sending off requests as network-only requests, and caused unrelatednetwork-onlyoperations to be dropped, by @kitten (See #2691) - Allow URL limit for GET requests to be bypassed using
preferGetMethod: 'force'rather than the defaulttrueor'within-url-limit'value, by @kitten (See #2692) - ⚠️ Fix operation identities preventing users from deeply cloning operation contexts. Instead, we now use a client-wide counter (rolling over as needed).
While this changes an internal data structure in
@urql/coreonly, this change also affects theofflineExchangein@urql/exchange-graphcachedue to it relying on the identity being previously an object rather than an integer, by @kitten (See #2732)
- ⚠️ Fix type utilities turning the
- 3.0.32 Sept 2022
Release notes
Open source →Patch Changes
- ⚠️ Fix type utilities turning the
variablesproperties optional when a type fromTypedDocumentNodehas noVariablesor all optionalVariables. Previously this would break for wrappers, e.g. in code generators, or when the type didn't quite match what we'd expect Submitted by @kitten (See #3022) - Updated dependencies (See #3007, #2962, #3007, #3015, and #3022)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- ⚠️ Fix type-generation, with a change in TS/Rollup the type generation took the paths as src and resolved them into the types dir, by @JoviDeCroock (See #2870)
- Updated dependencies (See #2872, #2870, and #2871)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- ⚠️ Fix variable types in core makeOperation, by @JoviDeCroock (See #2665)
- ⚠️ Fix type utilities turning the
- 3.0.228 Aug 2022
Release notes
Open source →Patch Changes
- Move remaining
Variablesgenerics over fromobjectdefault toVariables extends AnyVariables = AnyVariables. This has been introduced previously in #2607 but some missing ports have been missed due to TypeScript not catching them previously. Depending on your TypeScript version theobjectdefault is incompatible withAnyVariables, by @kitten (See #2843) - Updated dependencies (See #2843, #2847, #2850, and #2846)
- @urql/[email protected]
Release notes
Open source →Patch Changes
- Update generics for components, by @JoviDeCroock (See #2663)
- Updated dependencies (See #2665)
- @urql/[email protected]
- Move remaining
- 3.0.121 Aug 2022
Release notes
Open source →Release notes
Open source →Patch Changes
- ⚠️ fix setting a client default requestPolicy, we set
context.requestPolicy: undefinedfrom our bindings which makes a spread override the client-set default, by @JoviDeCroock (See #2634)
Release notes2 sources agree
Open source →Patch Changes
- Tweak the variables type for when generics only contain nullable keys, by @JoviDeCroock (See #2623)
- ⚠️ fix setting a client default requestPolicy, we set
- 3.0.019 Aug 2022
Release notes
Open source →Major Changes
- Remove
persistedFetchExchangeand instead implementpersistedExchange. This exchange must be placed in front of a terminating exchange (such as the defaultfetchExchangeor asubscriptionExchangethat supports persisted queries), and only modifies incoming operations to containextensions.persistedQuery, which is sent on via the API. If the API expects Automatic Persisted Queries, requests are retried by this exchange internally Submitted by @kitten (See #3057) - Rename
@urql/exchange-persisted-fetchto@urql/exchange-persistedSubmitted by @kitten (See #3057)
Minor Changes
- Update exchanges to drop redundant
sharecalls, since@urql/core’scomposeExchangesutility now automatically does so for us Submitted by @kitten (See #3082)
Patch Changes
- Refactor SHA256 logic to save on bundlesize Submitted by @kitten (See #3052)
- Upgrade to
wonka@^6.3.0Submitted by @kitten (See #3104) - Add TSDocs for all exchanges, documenting API internals Submitted by @kitten (See #3072)
- Updated dependencies (See #3101, #3033, #3054, #3053, #3060, #3081, #3039, #3104, #3082, #3097, #3061, #3055, #3085, #3079, #3087, #3059, #3055, #3057, #3050, #3062, #3051, #3043, #3063, #3054, #3102, #3097, #3106, #3058, and #3062)
- @urql/[email protected]
Release notes2 sources agree
Open source →Major Changes
- Goodbye IE11! 👋 This major release removes support for IE11. All code that is shipped will be transpiled much less and will not be ES5-compatible anymore, by @kitten (See #2504)
- Implement stricter variables types, which require variables to always be passed and match TypeScript types when the generic is set or inferred. This is a breaking change for TypeScript users potentially, unless all types are adhered to, by @kitten (See #2607)
- Upgrade to Wonka v6 (
wonka@^6.0.0), which has no breaking changes but is built to target ES2015 and comes with other minor improvements. The library has fully been migrated to TypeScript which will hopefully help with making contributions easier!, by @kitten (See #2504)
Patch Changes
Release notes
Open source →Major Changes
- Goodbye IE11! 👋 This major release removes support for IE11. All code that is shipped will be transpiled much less and will not be ES5-compatible anymore, by @kitten (See #2504)
- Remove support for options on the
ClientandClient.createOperationContext. We've noticed that there's no real need forcreateOperationContextor the options on theClientand that it actually encourages modifying properties on theClientthat are really meant to be modified dynamically via exchanges, by @kitten (See #2619) - Implement stricter variables types, which require variables to always be passed and match TypeScript types when the generic is set or inferred. This is a breaking change for TypeScript users potentially, unless all types are adhered to, by @kitten (See #2607)
- Upgrade to Wonka v6 (
wonka@^6.0.0), which has no breaking changes but is built to target ES2015 and comes with other minor improvements. The library has fully been migrated to TypeScript which will hopefully help with making contributions easier!, by @kitten (See #2504)
Minor Changes
- Remove the
babel-plugin-modular-graphqlhelper, this because the graphql package hasn't converted to ESM yet which gives issues in node environments, by @JoviDeCroock (See #2551)
- Remove
- 2.6.122 Jul 2022
Release notes
Open source →We urgently recommend all users of the React bindings to upgrade to this patch!
Please don't forget to deduplicate your installed version of
@urql/coreafter you upgrade.Patch Changes
- ⚠️ Fix missing React updates after an incoming response that schedules a mount. We now prevent dispatched operations from continuing to flush synchronously when the original source that runs the queue has terminated. This is important for the React bindings, because an update (e.g.
setState) may recursively schedule a mount, which then disabled othersetStateupdates from being processed. Previously we assumed that React used a trampoline scheduler for updates, however it appears thatsetStatecan recursively start more React work, by @kitten (See #2556)
- ⚠️ Fix missing React updates after an incoming response that schedules a mount. We now prevent dispatched operations from continuing to flush synchronously when the original source that runs the queue has terminated. This is important for the React bindings, because an update (e.g.