Releases: apollographql/apollo-client
v3.11.0-rc.0
Minor Changes
-
#11923
d88c7f8
Thanks @jerelmiller! - Add support forsubscribeToMore
function touseQueryRefHandlers
. -
#11854
3812800
Thanks @jcostello-atlassian! - Support extensions in useSubscription -
#11923
d88c7f8
Thanks @jerelmiller! - Add support forsubscribeToMore
function touseLoadableQuery
. -
#11863
98e44f7
Thanks @phryneas! - ReimplementuseSubscription
to fix rules of React violations. -
#11869
a69327c
Thanks @phryneas! - Rewrite big parts ofuseQuery
anduseLazyQuery
to be more compliant with the Rules of React and React Compiler -
#11936
1b23337
Thanks @jerelmiller! - Add the ability to specify a name for the client instance for use with Apollo Client Devtools. This is useful when instantiating multiple clients to identify the client instance more easily. This deprecates theconnectToDevtools
option in favor of a newdevtools
configuration.new ApolloClient({ devtools: { enabled: true, name: "Test Client", }, });
This option is backwards-compatible with
connectToDevtools
and will be used in the absense of adevtools
option. -
#11923
d88c7f8
Thanks @jerelmiller! - Add support forsubscribeToMore
function touseBackgroundQuery
. -
#11789
5793301
Thanks @phryneas! - Changes usages of theGraphQLError
type toGraphQLFormattedError
.This was a type bug - these errors were never
GraphQLError
instances
to begin with, and theGraphQLError
class has additional properties that can
never be correctly rehydrated from a GraphQL result.
The correct type to use here isGraphQLFormattedError
.Similarly, please ensure to use the type
FormattedExecutionResult
instead ofExecutionResult
- the non-"Formatted" versions of these types
are for use on the server only, but don't get transported over the network. -
#11930
a768575
Thanks @jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending@apollo/graphql-testing-library
.
Patch Changes
-
#11927
2941824
Thanks @phryneas! - Addrestart
function touseSubscription
. -
#11902
96422ce
Thanks @phryneas! - Addcause
field toApolloError
. -
#11806
8df6013
Thanks @phryneas! - MockLink: add query default variables if not specified in mock request -
#11626
228429a
Thanks @phryneas! - CallnextFetchPolicy
with "variables-changed" even if there is afetchPolicy
specified. (fixes #11365) -
#11719
09a6677
Thanks @phryneas! - Allow wrappingcreateQueryPreloader
-
#11921
70406bf
Thanks @phryneas! - addignoreResults
option touseSubscription
v3.10.8
Patch Changes
- #11911
1f0460a
Thanks @jerelmiller! - Allowundefined
to be returned from acache.modify
modifier function when a generic type argument is used.
v3.10.7
Patch Changes
-
#11901
10a8c0a
Thanks @phryneas! - updatecanUseLayoutEffect
check to also allow for layout effects in React Native -
#11861
1aed0e8
Thanks @henryqdineen! - Defend against non-serializable params ininvariantWrappers
-
#11905
29755da
Thanks @phryneas! - Add.d.cts
files for cjs bundles -
#11906
d104759
Thanks @phryneas! - chore: update TypeScript to 5.5
v3.10.6
v3.10.5
Patch Changes
-
#11888
7fb7939
Thanks @phryneas! - switchuseRenderGuard
to an approach not accessing React's internals -
#11511
6536369
Thanks @phryneas! -useLoadableQuery
: ensure thatloadQuery
is updated if the ApolloClient instance changes -
#11860
8740f19
Thanks @alessbell! - Fixes #11849 by reevaluatingwindow.fetch
each timeBatchHttpLink
uses it, if not configured viaoptions.fetch
. Takes the same approach as PR #8603 which fixed the same issue inHttpLink
. -
#11852
d502a69
Thanks @phryneas! - Fix a bug where calling theuseMutation
reset
function would point the hook to an outdatedclient
reference. -
#11329
3d164ea
Thanks @PaLy! - Fix graphQLErrors in Error Link if networkError.result is an empty string -
#11852
d502a69
Thanks @phryneas! - Prevent writing to a ref in render inuseMutation
.
As a result, you might encounter problems in the future if you call the mutation'sexecute
function during render. Please note that this was never supported behavior, and we strongly recommend against it. -
#11848
ad63924
Thanks @phryneas! - Ensure covariant behavior:MockedResponse<X,Y>
should be assignable toMockedResponse
-
#11851
45c47be
Thanks @phryneas! - Avoid usage of useRef in useInternalState to prevent ref access in render. -
#11877
634d91a
Thanks @phryneas! - Add missing name to tuple member (fix TS5084) -
#11851
45c47be
Thanks @phryneas! - Fix a bug whereuseLazyQuery
would not pick up a client change.
v3.10.4
Patch Changes
-
#11838
8475346
Thanks @alex-kinokon! - Don’t prompt for DevTools installation for browser extension page -
#11839
6481fe1
Thanks @jerelmiller! - Fix a regression in 3.9.5 where a merge function that returned an incomplete result would not allow the client to refetch in order to fulfill the query. -
#11844
86984f2
Thanks @jerelmiller! - Honor the@nonreactive
directive when usingcache.watchFragment
or theuseFragment
hook to avoid rerendering when using these directives. -
#11824
47ad806
Thanks @phryneas! - Create brandedQueryRef
type without exposed properties.This change deprecates
QueryReference
in favor of aQueryRef
type that doesn't expose any properties.
This change also updatespreloadQuery
to return a newPreloadedQueryRef
type, which exposes thetoPromise
function as it does today. This means that query refs produced byuseBackgroundQuery
anduseLoadableQuery
now returnQueryRef
types that do not have access to atoPromise
function, which was never meant to be used in combination with these hooks.While we tend to avoid any types of breaking changes in patch releases as this, this change was necessary to support an upcoming version of the React Server Component integration, which needed to omit the
toPromise
function that would otherwise have broken at runtime.
Note that this is a TypeScript-only change. At runtime,toPromise
is still present on all queryRefs currently created by this package - but we strongly want to discourage you from accessing it in all cases except for thePreloadedQueryRef
use case.Migration is as simple as replacing all references to
QueryReference
withQueryRef
, so it should be possible to do this with a search & replace in most code bases:-import { QueryReference } from '@apollo/client' +import { QueryRef } from '@apollo/client' - function Component({ queryRef }: { queryRef: QueryReference<TData> }) { + function Component({ queryRef }: { queryRef: QueryRef<TData> }) { // ... }
-
#11845
4c5c820
Thanks @jerelmiller! - Remove@nonreactive
directives from queries passed toMockLink
to ensure they are properly matched. -
#11837
dff15b1
Thanks @jerelmiller! - Fix an issue where a polled query created in React strict mode may not stop polling after the component unmounts while using thecache-and-network
fetch policy.
v3.10.3
v3.10.2
Patch Changes
-
#11821
2675d3c
Thanks @jerelmiller! - Fix a regression where rerendering a component withuseBackgroundQuery
would recreate thequeryRef
instance when used with React's strict mode. -
#11821
2675d3c
Thanks @jerelmiller! - Revert the change introduced in
3.9.10 via #11738 that disposed of queryRefs synchronously. This change caused too many issues with strict mode.
v3.10.1
Patch Changes
-
#11792
5876c35
Thanks @phryneas! - AutoCleanedCache: only schedule batched cache cleanup if the cache is full (fixes #11790) -
#11799
1aca7ed
Thanks @phryneas! -RenderPromises
: usecanonicalStringify
to serializevariables
to ensure query deduplication is properly applied even whenvariables
are specified in a different order. -
#11803
bf9dd17
Thanks @phryneas! - Update therehackt
dependency to^0.1.0
-
#11756
60592e9
Thanks @henryqdineen! - Fix operation.setContext() type
v3.10.0
Minor Changes
-
#11605
e2dd4c9
Thanks @alessbell! - AddscreateMockFetch
utility for integration testing that includes the link chain -
#11760
acd1982
Thanks @alessbell! -createTestSchema
now uses graphql-toolsmergeResolvers
to merge resolvers instead of a shallow merge. -
#11764
f046aa9
Thanks @alessbell! - RenamecreateProxiedSchema
tocreateTestSchema
andcreateMockFetch
tocreateSchemaFetch
. -
#11777
5dfc79f
Thanks @alessbell! - CallcreateMockSchema
insidecreateTestSchema
. -
#11774
2583488
Thanks @alessbell! - Add ability to set min and max delay increateSchemaFetch
-
#11605
e2dd4c9
Thanks @alessbell! - Adds proxiedSchema and createMockSchema testing utilities -
#11465
7623da7
Thanks @alessbell! - AddwatchFragment
method to the cache and expose it on ApolloClient, refactoruseFragment
usingwatchFragment
. -
#11743
78891f9
Thanks @jerelmiller! - Remove alpha designation forqueryRef.toPromise()
to stabilize the API. -
#11743
78891f9
Thanks @jerelmiller! - Remove alpha designation forcreateQueryPreloader
to stabilize the API. -
#11783
440563a
Thanks @alessbell! - Moves new testing utilities to their own entrypoint,testing/experimental
Patch Changes
-
#11757
9825295
Thanks @phryneas! - AdjustuseReadQuery
wrapper logic to work with transported objects. -
#11771
e72cbba
Thanks @phryneas! - WrapuseQueryRefHandlers
inwrapHook
. -
#11754
80d2ba5
Thanks @alessbell! - ExportWatchFragmentOptions
andWatchFragmentResult
from main entrypoint and fix bug wherethis
wasn't bound to thewatchFragment
method onApolloClient
.