Releases: apollographql/apollo-client
v3.11.4
Patch Changes
-
#11994
41b17e5
Thanks @jerelmiller! - Update theModifier
function type to allowcache.modify
to return deeply partial data. -
#11989
e609156
Thanks @phryneas! - Fix a potential crash when callingclearStore
while a query was running.Previously, calling
client.clearStore()
while a query was running had one of these results:useQuery
would stay in aloading: true
state.useLazyQuery
would stay in aloading: true
state, but also crash with a"Cannot read property 'data' of undefined"
error.
Now, in both cases, the hook will enter an error state with a
networkError
, and the promise returned by theuseLazyQuery
execute
function will return a result in an error state. -
#11994
41b17e5
Thanks @jerelmiller! - Prevent accidental distribution oncache.modify
field modifiers when a field is a union type array.
v3.11.3
Patch Changes
-
#11984
5db1659
Thanks @jerelmiller! - Fix an issue where multiple fetches with results that returned errors would sometimes set thedata
property with anerrorPolicy
ofnone
. -
#11974
c95848e
Thanks @jerelmiller! - Fix an issue wherefetchMore
would write its result data to the cache when using it with ano-cache
fetch policy. -
#11974
c95848e
Thanks @jerelmiller! - Fix an issue where executingfetchMore
with ano-cache
fetch policy could sometimes result in multiple network requests. -
#11974
c95848e
Thanks @jerelmiller! -Potentially disruptive change
When calling
fetchMore
with a query that has ano-cache
fetch policy,fetchMore
will now throw if anupdateQuery
function is not provided. This provides a mechanism to merge the results from thefetchMore
call with the query's previous result.
v3.11.2
Patch Changes
- #11980
38c0a2c
Thanks @jerelmiller! - Fix missinggetServerSnapshot
error when usinguseSubscription
on the server.
v3.11.1
Patch Changes
-
#11969
061cab6
Thanks @jerelmiller! - Remove check forwindow.__APOLLO_CLIENT__
when determining whether to connect to Apollo Client Devtools whenconnectToDevtools
ordevtools.enabled
is not specified. This now simply checks to see if the application is in development mode. -
#11971
ecf77f6
Thanks @jerelmiller! - Prevent thesetTimeout
for suggesting devtools from running in non-browser environments.
v3.11.0
Potentially Breaking Fixes
-
#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. -
#11626
228429a
Thanks @phryneas! - CallnextFetchPolicy
with "variables-changed" even if there is afetchPolicy
specified.Previously this would only be called when the current
fetchPolicy
was equal to thefetchPolicy
option or the option was not specified. If you usenextFetchPolicy
as a function, expect to see this function called more often.Due to this bug, this also meant that the
fetchPolicy
might be reset to the initialfetchPolicy
, even when you specified anextFetchPolicy
function. If you previously relied on this behavior, you will need to update yournextFetchPolicy
callback function to implement this resetting behavior.As an example, if your code looked like the following:
useQuery(QUERY, { nextFetchPolicy(currentFetchPolicy, info) { // your logic here } );
Update your function to the following to reimplement the resetting behavior:
useQuery(QUERY, { nextFetchPolicy(currentFetchPolicy, info) { if (info.reason === 'variables-changed') { return info.initialFetchPolicy; } // your logic here } );
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
. -
#11930
a768575
Thanks @jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending@apollo/graphql-testing-library
.
Patch Changes
-
#11951
0de03af
Thanks @phryneas! - add React 19 RC topeerDependencies
-
#11927
2941824
Thanks @phryneas! - Addrestart
function touseSubscription
. -
#11949
4528918
Thanks @alessbell! - Remove deprecatedwatchFragment
option,canonizeResults
-
#11937
78332be
Thanks @phryneas! -createSchemaFetch
: simulate serialized errors instead of anApolloError
instance -
#11902
96422ce
Thanks @phryneas! - Addcause
field toApolloError
. -
#11806
8df6013
Thanks @phryneas! - MockLink: add query default variables if not specified in mock request -
#11926
3dd6432
Thanks @phryneas! -watchFragment
: forward additional options todiffOptions
-
#11946
7d833b8
Thanks @jerelmiller! - Fix issue where mutations were not accessible by Apollo Client Devtools in 3.11.0-rc.0. -
#11944
8f3d7eb
Thanks @sneyderdev! - AllowIgnoreModifier
to be returned from aoptimisticResponse
function when inferring from aTypedDocumentNode
when used with a generic argument. -
#11954
4a6e86a
Thanks @phryneas! - Document (and deprecate) the previously undocumentederrors
property on theuseQuery
QueryResult
type. -
#11719
09a6677
Thanks @phryneas! - Allow wrappingcreateQueryPreloader
-
#11921
70406bf
Thanks @phryneas! - addignoreResults
option touseSubscription
v3.11.0-rc.2
Patch Changes
-
#11951
0de03af
Thanks @phryneas! - add React 19 RC topeerDependencies
-
#11937
78332be
Thanks @phryneas! -createSchemaFetch
: simulate serialized errors instead of anApolloError
instance -
#11944
8f3d7eb
Thanks @sneyderdev! - AllowIgnoreModifier
to be returned from aoptimisticResponse
function when inferring from aTypedDocumentNode
when used with a generic argument. -
#11954
4a6e86a
Thanks @phryneas! - Document (and deprecate) the previously undocumentederrors
property on theuseQuery
QueryResult
type.
v3.11.0-rc.1
Patch Changes
-
#11949
4528918
Thanks @alessbell! - Remove deprecatedwatchFragment
option,canonizeResults
-
#11926
3dd6432
Thanks @phryneas! -watchFragment
: forward additional options todiffOptions
-
#11946
7d833b8
Thanks @jerelmiller! - Fix issue where mutations were not accessible by Apollo Client Devtools in 3.11.0-rc.0.
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