PackageTrack

npm · #3808

@urql/core

6.0.3urql-graphql/urql

The shared core for the highly customizable and versatile GraphQL client

Release timeline

283 releases since 2020
2020202120222023202420252026

Releases

  1. 4.2.3-canary-93d7256a17 Jan 2024pre-release

    Nothing published for this version

  2. 4.2.3-canary-1fabe35817 Jan 2024pre-release

    Nothing published for this version

  3. 4.2.212 Dec 2023
    Release notes

    Patch Changes

    • Add type for hasNext to the query and mutation results Submitted by @JoviDeCroock (See #3703)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix the default cacheExchange crashing on cache-only request policies with cache misses due to undefined results Submitted by @JoviDeCroock (See #3459)
    Open source →
  4. 4.2.2-canary-d5d3c97a12 Dec 2023pre-release

    Nothing published for this version

  5. 4.2.110 Dec 2023
    Release notes

    Patch Changes

    • add support for Svelte 5 in the peerDependencies Submitted by @itssumitrai (See #3634)
    Open source →
    Release notes

    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)
    Open source →
  6. 4.2.1-canary-993a017b10 Dec 2023pre-release

    Nothing published for this version

  7. 4.2.1-canary-1d6be50910 Dec 2023pre-release

    Nothing published for this version

  8. 4.2.014 Nov 2023
    Release notes

    Minor Changes

    • Mark @urql/core as a peer dependency as well as a regular dependency Submitted by @kitten (See #3579)

    Patch Changes

    • ⚠️ Fix subscription handlers to not receive null values Submitted by @kitten (See #3581)
    Open source →
    Release notes

    Minor Changes

    • Add option to enable persisted-operations for subscriptions Submitted by @JoviDeCroock (See #3549)
    Open source →
    Release notes

    Minor Changes

    • Try to parse text/plain content-type as JSON before bailing out with an error Submitted by @JoviDeCroock (See #3430)
    Open source →
  9. 4.2.0-canary-94e0c31014 Nov 2023pre-release

    Nothing published for this version

  10. 4.1.419 Oct 2023
    Release notes

    Patch Changes

    • Implement new @defer / @stream transport protocol spec changes Submitted by @JoviDeCroock (See #3389)
    • Support non spec-compliant error bodies, i.e. the Shopify API does return errors but 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 the Client Submitted by @Burbenog (See #3403)
    Open source →
  11. 4.1.4-canary-f66de5be19 Oct 2023pre-release

    Nothing published for this version

  12. 4.1.4-canary-c35e7a989 Oct 2023pre-release

    Nothing published for this version

  13. 4.1.4-canary-812385d419 Oct 2023pre-release

    Nothing published for this version

  14. 4.1.4-canary-423897f919 Oct 2023pre-release

    Nothing published for this version

  15. 4.1.4-canary-052d5f4926 Sept 2023pre-release

    Nothing published for this version

  16. 4.1.318 Sept 2023
    Release notes

    Patch Changes

    • ⚠️ Fix missing teardown operation handling in the ssrExchange. This could lead to duplicate network operations being executed Submitted by @kitten (See #3386)
    Open source →
  17. 4.1.3-canary-643f426a18 Sept 2023pre-release

    Nothing published for this version

  18. 4.1.231 Aug 2023
    Release notes

    Patch Changes

    Open source →
    Release notes

    Patch Changes

    • Explicitly unblock client.reexecuteOperation calls to allow stalled operations from continuing and re-executing. Previously, this could cause @urql/exchange-graphcache to stall if an optimistic mutation led to a cache miss Submitted by @kitten (See #3363)
    Open source →
  19. 4.1.2-canary-7ee3678831 Aug 2023pre-release

    Nothing published for this version

  20. 4.1.2-canary-6431511430 Aug 2023pre-release

    Nothing published for this version

  21. 4.1.130 Jul 2023
    Release notes

    Patch Changes

    • Add type for hasNext to the query and mutation results Submitted by @JoviDeCroock (See #3703)
    Open source →
    Release notes

    Patch Changes

    Open source →
    Release notes

    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)
    Open source →
    Release notes

    Patch Changes

    • Add case for subscriptionExchange to handle GraphQLError[] received in the error observer callback. Note: This doesn't strictly check for the GraphQLError shape and only checks for arrays and receiving errors in the ExecutionResult on the next observer callback is preferred and recommended for transports Submitted by @kitten (See #3346)
    Open source →
  22. 4.1.1-canary-f9ea1db430 Jul 2023pre-release

    Nothing published for this version

  23. 4.1.021 Jul 2023
    Release notes

    Minor Changes

    • Mark @urql/core as a peer dependency as well as a regular dependency Submitted by @kitten (See #3579)

    Patch Changes

    • ⚠️ Fix subscription handlers to not receive null values Submitted by @kitten (See #3581)
    Open source →
    Release notes

    Minor Changes

    Patch Changes

    Open source →
    Release notes

    Minor Changes

    • Allow persisted query logic to be skipped by the persistedExchange if the passed generateHash function resolves to a nullish value. This allows (A)PQ to be selectively disabled for individual operations Submitted by @kitten (See #3324)

    Patch Changes

    Open source →
    Release notes

    Minor Changes

    • Update formatDocument to output FormattedNode type mapping. The formatter will now annotate added __typename fields with _generated: true, place selection nodes' directives onto a _directives dictionary, 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

    • Add OperationContext.optimistic flag as an internal indication on whether a mutation triggered an optimistic update in @urql/exchange-graphcache's cacheExchange Submitted by @kitten (See #3308)
    Open source →
  24. 4.1.0-canary-d6bdd72e21 Jul 2023pre-release

    Nothing published for this version

  25. 4.1.0-canary-d3eb256d19 Jul 2023pre-release

    Nothing published for this version

  26. 4.1.0-canary-c37a0fc319 Jul 2023pre-release

    Nothing published for this version

  27. 4.1.0-canary-aeb6b44c21 Jul 2023pre-release

    Nothing published for this version

  28. 4.1.0-canary-889ca4db21 Jul 2023pre-release

    Nothing published for this version

  29. 4.1.0-canary-2acc629821 Jul 2023pre-release

    Nothing published for this version

  30. 4.0.12-canary-7ddccc1319 Jul 2023pre-release

    Nothing published for this version

  31. 4.0.1112 Jul 2023
    Release notes

    Patch Changes

    • Re-order maskTypename to apply masking earlier in the chain Submitted by @kitten (See #3298)
    • ⚠️ Fix ssrExchange not formatting query documents using formatDocument. Without this call we'd run the risk of not having __typename available on the client-side when rehydrating Submitted by @kitten (See #3288)
    • Add deprecation notice for maskTypename option. 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)
    Open source →
  32. 4.0.11-canary-caa029e08 Jul 2023pre-release

    Nothing published for this version

  33. 4.0.11-canary-c074a50427 Jun 2023pre-release

    Nothing published for this version

  34. 4.0.11-canary-8b8cf54a30 Jun 2023pre-release

    Nothing published for this version

  35. 4.0.11-canary-657bd0c612 Jul 2023pre-release

    Nothing published for this version

  36. 4.0.11-canary-1cf2e2ff12 Jul 2023pre-release

    Nothing published for this version

  37. 4.0.11-canary-19d2674828 Jun 2023pre-release

    Nothing published for this version

  38. 4.0.101 Jun 2023
    Release notes

    Patch Changes

    • Add missing fetchSubscriptions entry to OperationContext. The Client’s fetchSubscriptions now works properly and can be used to execute subscriptions as multipart/event-stream requests Submitted by @kitten (See #3244)
    • ⚠️ Fix fetchSource not working for subscriptions since hasNext isn’t necessarily set Submitted by @kitten (See #3244)
    Open source →
  39. 4.0.91 Jun 2023
    Release notes

    Patch Changes

    • Return AbortController invocation 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)
    Open source →
  40. 4.0.831 May 2023
    Release notes

    Patch Changes

    • Respect additionalTypenames on 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 isSubscriptionOperation option in subscriptionExchange to include teardown operations, to avoid confusion Submitted by @kitten (See #3206)
    Open source →
  41. 4.0.725 Apr 2023
    Release notes

    Patch Changes

    • Publish with npm provenance Submitted by @kitten (See #3180)
    Open source →
  42. 4.0.620 Apr 2023
    Release notes

    Patch Changes

    • Handle multipart/mixed variations starting with boundary rather than CRLF and a boundary Submitted by @kitten (See #3172)
    • ⚠️ Fix regression which would disallow network-only operations after cache-and-network completed Submitted by @kitten (See #3174)
    Open source →
  43. 4.0.520 Apr 2023
    Release notes

    Patch Changes

    Open source →
    Release notes

    Patch Changes

    • Replace File and Blob objects with null in variables if multipart request will be started Submitted by @kitten (See #3169)
    • Strictly deduplicate cache-and-network and network-only operations, while a non-stale response is being waited for Submitted by @kitten (See #3157)
    • ⚠️ Fix boundary stopping multipart/mixed streams when it randomly occurs in response payloads Submitted by @kitten (See #3155)
    • Improve dispatching of arbitrary operations using reexecuteOperation Submitted by @kitten (See #3159)
    Open source →
  44. 4.0.47 Apr 2023
    Release notes

    Patch Changes

    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix queryStore and subscriptionStore not subscribing when writable calls its StartStopNotifier. 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 the Client Submitted by @kitten (See #3331)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix hasNext being defaulted to false when a new subscription event is received on the subscriptionExchange that doesn't have hasNext set Submitted by @kitten (See #3137)
    Open source →
  45. 4.0.36 Apr 2023
    Release notes

    Patch Changes

    • Updated peer dependency range to include support for Svelte ^4.0.0 Submitted by @ategen3rt (See #3302)
    Open source →
    Release notes

    Patch Changes

    • Apply shallow difference patch from React bindings to @urql/preact (See: #3195) Submitted by @kitten (See #3266)
    Open source →
    Release notes

    Patch Changes

    • Handle fetch rejections in makeFetchSource and properly hand them over to CombinedErrors Submitted by @kitten (See #3131)
    Open source →
  46. 4.0.21 Apr 2023
    Release notes2 sources agree

    Patch Changes

    • Update build process to generate correct source maps Submitted by @kitten (See #3201)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix incremental delivery payloads not merging data correctly, or not handling patches on root results Submitted by @kitten (See #3124)
    Open source →
  47. 4.0.131 Mar 2023
    Release notes

    Patch Changes

    • ⚠️ Fix persistedExchange ignoring teardowns in its initial operation mapping. Since the hash function is promisified, which defers any persisted operation, it needs to respect teardowns Submitted by @kitten (See #3312)
    Open source →
    Release notes2 sources agree

    Patch Changes

    • Publish with npm provenance Submitted by @kitten (See #3180)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix format of map form data field on multipart upload requests. This was erroneously set to a string rather than a string tuple Submitted by @kitten (See #3118)
    Open source →
  48. 4.0.031 Mar 2023
    Release notes

    Major Changes

    • Update the preferGetForPersistedQueries option to include the 'force' and 'within-url-limit' values from the Client's preferGetMethod option. The default value of true no longer sets OperationContext's preferGetMethod setting to 'force'. Instead, the value of preferGetForPersistedQueries carries through to the OperationContext's preferGetMethod setting for persisted queries Submitted by @NWRichmond (See #3192)
    Open source →
    Release notes

    Major Changes

    • Update OperationResult.hasNext and OperationResult.stale to be required fields. If you have a custom exchange creating results, you'll have to add these fields or use the makeResult, mergeResultPatch, or makeErrorResult helpers Submitted by @kitten (See #3061)
    • Move handler, which combines subscription events, from mutationStore to subscriptionStore. It’s accidentally been defined and implemented on the wrong store and was meant to be on subscriptionStore Submitted by @kitten (See #3078)

    Minor Changes

    • Allow mutations to update their results in bindings when hasNext: true is set, which indicates deferred or streamed results Submitted by @kitten (See #3103)

    Patch Changes

    Open source →
    Release notes

    Major Changes

    • Remove the default Client from Context. Previously, urql kept 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 own Client if you were relying on this behaviour Submitted by @JoviDeCroock (See #3033)

    Minor Changes

    • Allow mutations to update their results in bindings when hasNext: true is set, which indicates deferred or streamed results Submitted by @kitten (See #3103)

    Patch Changes

    Open source →
    Release notes

    Major Changes

    • Remove defaultExchanges from @urql/core and make exchanges a required property on Client construction. In doing so we make the urql package 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 exchanges

      import { createClient, cacheExchange, fetchExchange } from '@urql/core';
      
      const client = createClient({
        url: '',
        exchanges: [cacheExchange, fetchExchange],
      });
      

      Submitted by @JoviDeCroock (See #3033)

    • Update subscriptionExchange to receive FetchBody instead. In the usual usage of subscriptionExchange (for instance with graphql-ws) you can expect no breaking changes. However, the key and extensions field has been removed and instead the forwardSubscription function receives the full Operation as a second argument Submitted by @kitten (See #3054)

    • Remove dependence on graphql package and replace it with @0no-co/graphql.web, which reduces the default bundlesize impact of urql packages to a minimum. All types should remain compatible, even if you use graphql elsewhere in your app, and if other dependencies are using graphql you may alias it to graphql-web-lite Submitted by @kitten (See #3097)

    • Update OperationResult.hasNext and OperationResult.stale to be required fields. If you have a custom exchange creating results, you'll have to add these fields or use the makeResult, mergeResultPatch, or makeErrorResult helpers Submitted by @kitten (See #3061)

    • Remove getOperationName export from @urql/core Submitted by @kitten (See #3062)

    Minor Changes

    • Return a new OperationResultSource from all Client methods (which replaces PromisifiedSource on shortcut methods). This allows not only toPromise() to be called, but it can also be used as an awaitable PromiseLike and has a .subscribe(onResult) method aliasing the subscribe utility from wonka Submitted by @kitten (See #3060)
    • Update subscriptionExchange to support incremental results out of the box. If a subscription proactively completes, results are also now updated with hasNext: false Submitted by @kitten (See #3055)
    • Implement text/event-stream response support. This generally adheres to the GraphQL SSE protocol and GraphQL Yoga push responses, and is an alternative to multipart/mixed Submitted 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-fetch Submitted by @kitten (See #3051)
    • Support GraphQLRequest.extensions as spec-extensions input to GraphQL requests Submitted by @kitten (See #3054)
    • Allow subscriptions to be handled by the fetchExchange when fetchSubscriptions is 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 the Client. Previously, the Client already started doing some work to share results between queries, and to avoid dispatching operations as needed. It now only dispatches operations strictly when the dedupExchange would allow so as well, moving its logic into the Client Submitted by @kitten (See #3058)

    Patch Changes

    • Deduplicate operations as the dedupExchange did; by filtering out duplicate operations until either the original operation has been cancelled (teardown) or a first result (without hasNext: 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 makeOperation to be called with a partial OperationContext when it’s called to copy an operation. When it receives an Operation as a second argument now, the third argument, the context, will be spread into the prior operation.context Submitted by @kitten (See #3081)
    • Move multipart/mixed to end of Accept header to avoid cauing Yoga to unnecessarily use it Submitted by @JoviDeCroock (See #3039)
    • Upgrade to wonka@^6.3.0 Submitted by @kitten (See #3104)
    • Update Exchange contract and composeExchanges utility to remove the need to manually call share on either incoming Source<Operation> or forward()’s Source<OperationResult>. This is now taken care of internally in composeExchanges and 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-in TypedQueryDocumentNode typings for type inference Submitted by @kitten (See #3085)
    • Add missing type exports of SSR-related types (SerializedResult, SSRExchangeParams, SSRExchange, and SSRData) to @urql/core's type exports Submitted by @kitten (See #3079)
    • Allow any object fitting the GraphQLError shape to rehydrate without passing through a GraphQLError constructor in CombinedError Submitted by @kitten (See #3087)
    • Add missing hasNext and stale passthroughs on caching exchanges Submitted by @kitten (See #3059)
    • ⚠️ Fix incremental results not merging errors from subsequent non-incremental results Submitted by @kitten (See #3055)
    • Add logic for request.extensions.persistedQuery to @urql/core to omit sending query as 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 Client result source construction code and allow multiple mutation results, if result.hasNext on a mutation result is set to true, 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)
    Open source →
  49. 3.2.210 Mar 2023
    Release notes

    Patch Changes

    • ⚠️ Fix generated empty Variables type as passed to generics, that outputs a type of { [var: string]: never; }. A legacy/unsupported version of typescript-urql, which wraps urql's React hooks, generates empty variables types as the following code snippet, which is not detected:
      type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
      type Variables = Exact<{ [key: string]: never }>;
      
      Submitted by @kitten (See #3029)
    Open source →
  50. 3.2.19 Mar 2023
    Release notes

    Patch Changes

    Open source →
  51. 3.2.07 Mar 2023

    Nothing published for this version

  52. 3.1.19 Dec 2022
    Release notes

    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's stringifyDocument that caused some formatted documents to not be reprinted, by @JoviDeCroock (See #2871)
    Open source →
  53. 3.1.08 Dec 2022
    Release notes

    Minor Changes

    • Implement mapExchange, which replaces errorExchange, allowing onOperation and onResult to be called to either react to or replace operations and results. For backwards compatibility, this exchange is also exported as errorExchange and supports onError, by @kitten (See #2846)

    Patch Changes

    • Move remaining Variables generics over from object default to Variables 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 the object default is incompatible with AnyVariables, by @kitten (See #2843)
    • Reuse output of stringifyDocument in place of repeated print. This will mean that we now prevent calling print repeatedly 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/core has printed, by @kitten (See #2847)
    • Update to wonka@^6.1.2 to fix memory leak in fetch caused in Node.js by a lack of clean up after initiating a request, by @kitten (See #2850)
    Open source →
  54. 3.0.525 Oct 2022
    Release notes

    Patch Changes

    Open source →
  55. 3.0.414 Oct 2022
    Release notes

    Patch Changes

    • ⚠️ Fix type utilities turning the variables properties optional when a type from TypedDocumentNode has no Variables or all optional Variables. 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)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix ssrExchange bug which prevented staleWhileRevalidate from sending off requests as network-only requests, and caused unrelated network-only operations to be dropped, by @kitten (See #2691)
    • Allow URL limit for GET requests to be bypassed using preferGetMethod: 'force' rather than the default true or '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/core only, this change also affects the offlineExchange in @urql/exchange-graphcache due to it relying on the identity being previously an object rather than an integer, by @kitten (See #2732)
    Open source →
  56. 3.0.32 Sept 2022
    Release notes

    Patch Changes

    • ⚠️ Fix type utilities turning the variables properties optional when a type from TypedDocumentNode has no Variables or all optional Variables. 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)
    Open source →
    Release notes

    Patch Changes

    Open source →
    Release notes

    Patch Changes

    Open source →
  57. 3.0.228 Aug 2022
    Release notes

    Patch Changes

    • Move remaining Variables generics over from object default to Variables 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 the object default is incompatible with AnyVariables, by @kitten (See #2843)
    • Updated dependencies (See #2843, #2847, #2850, and #2846)
    Open source →
    Release notes

    Patch Changes

    Open source →
    Release notes

    Patch Changes

    • ⚠️ Fix case where maskTypename would not traverse down when the root query-field does not contain a __typename, by @mlecoq (See #2643)
    Open source →
  58. 3.0.121 Aug 2022
    Release notes

    Patch Changes

    • Publish with npm provenance Submitted by @kitten (See #3180)
    Open source →
    Release notes

    Patch Changes

    • ⚠️ fix setting a client default requestPolicy, we set context.requestPolicy: undefined from our bindings which makes a spread override the client-set default, by @JoviDeCroock (See #2634)
    Open source →
    Release notes2 sources agree

    Patch Changes

    • Tweak the variables type for when generics only contain nullable keys, by @JoviDeCroock (See #2623)
    Open source →
  59. 3.0.019 Aug 2022
    Release notes

    Major Changes

    • Remove persistedFetchExchange and instead implement persistedExchange. This exchange must be placed in front of a terminating exchange (such as the default fetchExchange or a subscriptionExchange that supports persisted queries), and only modifies incoming operations to contain extensions.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-fetch to @urql/exchange-persisted Submitted by @kitten (See #3057)

    Minor Changes

    • Update exchanges to drop redundant share calls, since @urql/core’s composeExchanges utility now automatically does so for us Submitted by @kitten (See #3082)

    Patch Changes

    Open source →
    Release notes2 sources agree

    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

    Open source →
    Release notes

    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 Client and Client.createOperationContext. We've noticed that there's no real need for createOperationContext or the options on the Client and that it actually encourages modifying properties on the Client that 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-graphql helper, this because the graphql package hasn't converted to ESM yet which gives issues in node environments, by @JoviDeCroock (See #2551)
    Open source →
  60. 2.6.122 Jul 2022
    Release notes

    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/core after 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 other setState updates from being processed. Previously we assumed that React used a trampoline scheduler for updates, however it appears that setState can recursively start more React work, by @kitten (See #2556)
    Open source →