A fully-featured caching GraphQL client.
Last release 6 days ago
21 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
27 versions withdrawn
withdrawn after publishing
7 years old
723 releases · first in 2019
Release timeline
723 releases since 2019Releases
- 3.3.124 Nov 2020
- 3.3.024 Nov 2020
Release notes
Open source →Apollo Client 3.3.0
Bug Fixes
-
Update
@wry/equalityto consider undefined properties equivalent to missing properties. @benjamn in #7108 -
Prevent memory leaks involving unused
onBroadcastfunction closure created inApolloClientconstructor. @kamilkisiela in #7161 -
Provide default empty cache object for root IDs like
ROOT_QUERY, to avoid differences in behavior before/afterROOT_QUERYdata has been written intoInMemoryCache. @benjamn in #7100 -
Cancel
queryInfo.notifyTimeoutinQueryInfo#markResultto prevent unnecessary network requests when using aFetchPolicyofcache-and-networkornetwork-onlyin a React component with multipleuseQuerycalls. @benjamn in #7347
Potentially breaking changes
-
Ensure
cache.readQueryandcache.readFragmentalways returnTData | null, instead of throwingMissingFieldErrorexceptions when missing fields are encountered. @benjamn in #7098Since this change converts prior exceptions to
nullreturns, and sincenullwas already a possible return value according to theTData | nullreturn type, we are confident this change will be backwards compatible (as long asnullwas properly handled before). -
HttpLinkwill now automatically strip any unusedvariablesbefore sending queries to the GraphQL server, since those queries are very likely to fail validation, according to the All Variables Used rule in the GraphQL specification. If you depend on the preservation of unused variables, you can restore the previous behavior by passingincludeUnusedVariables: trueto theHttpLinkconstructor (which is typically passed asoptions.linkto theApolloClientconstructor). @benjamn in #7127 -
Ensure
MockLink(used byMockedProvider) returns mock configuration errors (e.g.No more mocked responses for the query ...) through the Link'sObservable, instead of throwing them. These errors are now available through theerrorproperty of a result. @hwillson in #7110Returning mock configuration errors through the Link's
Observablewas the default behavior in Apollo Client 2.x. We changed it for 3, but the change has been problematic for those looking to migrate from 2.x to 3. We've decided to change this back with the understanding that not many people want or are relying onMockLink's throwing exception approach. If you want to change this functionality, you can define custom error handling throughMockLink.setOnError. -
Unsubscribing the last observer from an
ObservableQuerywill once again unsubscribe from the underlying networkObservablein all cases, as in Apollo Client 2.x, allowing network requests to be cancelled by unsubscribing. @javier-garcia-meteologica in #7165 and #7170. -
The independent
QueryBaseOptionsandModifiableWatchQueryOptionsinterface supertypes have been eliminated, and their fields are now defined byQueryOptions. @DCtheTall in #7136 -
Internally, Apollo Client now avoids nested imports from the
graphqlpackage, importing everything from the top-level package instead. For example,import { visit } from "graphql/language/visitor"is now just
import { visit } from "graphql"Since the
graphqlpackage uses.mjsmodules, your bundler may need to be configured to recognize.mjsfiles as ECMAScript modules rather than CommonJS modules. @benjamn in #7185
Improvements
-
Support inheritance of type and field policies, according to
possibleTypes. @benjamn in #7065 -
Allow configuring custom
mergefunctions, including themerge: trueandmerge: falseshorthands, in type policies as well as field policies. @benjamn in #7070 -
The verbosity of Apollo Client console messages can be globally adjusted using the
setLogVerbosityfunction:import { setLogVerbosity } from "@apollo/client"; setLogVerbosity("log"); // display all messages setLogVerbosity("warn"); // display only warnings and errors (default) setLogVerbosity("error"); // display only errors setLogVerbosity("silent"); // hide all console messagesRemember that all logs, warnings, and errors are hidden in production. @benjamn in #7226
-
Modifying
InMemoryCachefields that havekeyArgsconfigured will now invalidate only the field value with matching key arguments, rather than invalidating all field values that share the same field name. IfkeyArgshas not been configured, the cache must err on the side of invalidating by field name, as before. @benjamn in #7351 -
Shallow-merge
options.variableswhen combining existing or default options with newly-provided options, so new variables do not completely overwrite existing variables. @amannn in #6927 -
Avoid displaying
Cache data may be lost...warnings for scalar field values that happen to be objects, such as JSON data. @benjamn in #7075 -
In addition to the
result.dataproperty,useQueryanduseLazyQuerywill now provide aresult.previousDataproperty, which can be useful when a network request is pending andresult.datais undefined, sinceresult.previousDatacan be rendered instead of rendering an empty/loading state. @hwillson in #7082 -
Passing
validate: trueto theSchemaLinkconstructor will enable validation of incoming queries against the local schema before execution, returning validation errors inresult.errors, just like a non-local GraphQL endpoint typically would. @amannn in #7094 -
Allow optional arguments in
keyArgs: [...]arrays forInMemoryCachefield policies. @benjamn in #7109 -
Avoid registering
QueryPromisewhenskipistrueduring server-side rendering. @izumin5210 in #7310 -
ApolloCacheobjects (includingInMemoryCache) may now be associated with or disassociated from individual reactive variables by callingreactiveVar.attachCache(cache)and/orreactiveVar.forgetCache(cache). @benjamn in #7350
Additional notes2 sources agree
Open source →Bug Fixes
-
Update
@wry/equalityto consider undefined properties equivalent to missing properties. <br/> @benjamn in #7108 -
Prevent memory leaks involving unused
onBroadcastfunction closure created inApolloClientconstructor. <br/> @kamilkisiela in #7161 -
Provide default empty cache object for root IDs like
ROOT_QUERY, to avoid differences in behavior before/afterROOT_QUERYdata has been written intoInMemoryCache. <br/> @benjamn in #7100 -
Cancel
queryInfo.notifyTimeoutinQueryInfo#markResultto prevent unnecessary network requests when using aFetchPolicyofcache-and-networkornetwork-onlyin a React component with multipleuseQuerycalls. <br/> @benjamn in #7347
Potentially breaking changes
-
Ensure
cache.readQueryandcache.readFragmentalways returnTData | null, instead of throwingMissingFieldErrorexceptions when missing fields are encountered. <br/> @benjamn in #7098Since this change converts prior exceptions to
nullreturns, and sincenullwas already a possible return value according to theTData | nullreturn type, we are confident this change will be backwards compatible (as long asnullwas properly handled before). -
HttpLinkwill now automatically strip any unusedvariablesbefore sending queries to the GraphQL server, since those queries are very likely to fail validation, according to the All Variables Used rule in the GraphQL specification. If you depend on the preservation of unused variables, you can restore the previous behavior by passingincludeUnusedVariables: trueto theHttpLinkconstructor (which is typically passed asoptions.linkto theApolloClientconstructor). <br/> @benjamn in #7127 -
Ensure
MockLink(used byMockedProvider) returns mock configuration errors (e.g.No more mocked responses for the query ...) through the Link'sObservable, instead of throwing them. These errors are now available through theerrorproperty of a result. <br/> @hwillson in #7110Returning mock configuration errors through the Link's
Observablewas the default behavior in Apollo Client 2.x. We changed it for 3, but the change has been problematic for those looking to migrate from 2.x to 3. We've decided to change this back with the understanding that not many people want or are relying onMockLink's throwing exception approach. If you want to change this functionality, you can define custom error handling throughMockLink.setOnError. -
Unsubscribing the last observer from an
ObservableQuerywill once again unsubscribe from the underlying networkObservablein all cases, as in Apollo Client 2.x, allowing network requests to be cancelled by unsubscribing. <br/> @javier-garcia-meteologica in #7165 and #7170. -
The independent
QueryBaseOptionsandModifiableWatchQueryOptionsinterface supertypes have been eliminated, and their fields are now defined byQueryOptions. <br/> @DCtheTall in #7136 -
Internally, Apollo Client now avoids nested imports from the
graphqlpackage, importing everything from the top-level package instead. For example,import { visit } from "graphql/language/visitor";is now just
import { visit } from "graphql";Since the
graphqlpackage uses.mjsmodules, your bundler may need to be configured to recognize.mjsfiles as ECMAScript modules rather than CommonJS modules. <br/> @benjamn in #7185
Improvements
-
Support inheritance of type and field policies, according to
possibleTypes. <br/> @benjamn in #7065 -
Allow configuring custom
mergefunctions, including themerge: trueandmerge: falseshorthands, in type policies as well as field policies. <br/> @benjamn in #7070 -
The verbosity of Apollo Client console messages can be globally adjusted using the
setLogVerbosityfunction:import { setLogVerbosity } from "@apollo/client"; setLogVerbosity("log"); // display all messages setLogVerbosity("warn"); // display only warnings and errors (default) setLogVerbosity("error"); // display only errors setLogVerbosity("silent"); // hide all console messagesRemember that all logs, warnings, and errors are hidden in production. <br/> @benjamn in #7226
-
Modifying
InMemoryCachefields that havekeyArgsconfigured will now invalidate only the field value with matching key arguments, rather than invalidating all field values that share the same field name. IfkeyArgshas not been configured, the cache must err on the side of invalidating by field name, as before. <br/> @benjamn in #7351 -
Shallow-merge
options.variableswhen combining existing or default options with newly-provided options, so new variables do not completely overwrite existing variables. <br/> @amannn in #6927 -
Avoid displaying
Cache data may be lost...warnings for scalar field values that happen to be objects, such as JSON data. <br/> @benjamn in #7075 -
In addition to the
result.dataproperty,useQueryanduseLazyQuerywill now provide aresult.previousDataproperty, which can be useful when a network request is pending andresult.datais undefined, sinceresult.previousDatacan be rendered instead of rendering an empty/loading state. <br/> @hwillson in #7082 -
Passing
validate: trueto theSchemaLinkconstructor will enable validation of incoming queries against the local schema before execution, returning validation errors inresult.errors, just like a non-local GraphQL endpoint typically would. <br/> @amannn in #7094 -
Allow optional arguments in
keyArgs: [...]arrays forInMemoryCachefield policies. <br/> @benjamn in #7109 -
Avoid registering
QueryPromisewhenskipistrueduring server-side rendering. <br/> @izumin5210 in #7310 -
ApolloCacheobjects (includingInMemoryCache) may now be associated with or disassociated from individual reactive variables by callingreactiveVar.attachCache(cache)and/orreactiveVar.forgetCache(cache). <br/> @benjamn in #7350
-
- 3.3.0-rc.524 Nov 2020pre-release
Nothing published for this version
- 3.3.0-rc.422 Nov 2020pre-release
Nothing published for this version
- 3.3.0-rc.320 Nov 2020pre-release
Nothing published for this version
- 3.3.0-rc.218 Nov 2020pre-release
Nothing published for this version
- 3.3.0-rc.117 Nov 2020pre-release
Nothing published for this version
- 3.3.0-rc.04 Nov 2020pre-release
Nothing published for this version
- 3.3.0-beta.172 Nov 2020pre-release
Nothing published for this version
- 3.3.0-beta.1627 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.1526 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.1419 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.1316 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.1213 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.1110 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.102 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.91 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.81 Oct 2020pre-release
Nothing published for this version
- 3.3.0-beta.730 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.628 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.525 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.425 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.324 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.223 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.117 Sept 2020pre-release
Nothing published for this version
- 3.3.0-beta.014 Sept 2020pre-release
Nothing published for this version
- 3.2.924 Nov 2020
- 3.2.824 Nov 2020
- 3.2.717 Nov 2020
- 3.2.616 Nov 2020
Release notes2 sources agree
Open source →Bug Fixes
-
Always consider singleton IDs like
ROOT_QUERYandROOT_MUTATIONto be root IDs duringcache.gcgarbage collection, regardless of whether they have been retained or released. <br/> @benjamn in #7333 -
Use optional chaining syntax (
this.currentObservable?.refetch) in Reactrefetchwrapper function to avoid crashing when an unmounted component is accidentally refetched. <br/> @tm1000 in #6314 and @linmic in #7186
Improvements
-
Handle older
react-apollopackage incodemods/ac2-to-ac3/imports.jsmigration script. <br/> @tm1000 in #7216 -
Ensure
relayStylePaginationpreservespageInfo.{start,end}Cursorifedgesis missing or empty. <br/> @beaucollins in #7224
-
- 3.2.519 Oct 2020
Release notes2 sources agree
Open source →Improvements
-
Move
terserdependency fromdependenciestodevDependencies. <br/> @SimenB in #7188 -
Avoid all sub-package imports from the
graphqlnpm package. <br/> @stoically in #7185
-
- 3.2.413 Oct 2020
Release notes2 sources agree
Open source →Improvements
-
Update the
optimismnpm dependency to version 0.13.0 in order to use the newoptimistic.forgetmethod to fix a potentialcache.watchmemory leak. <br/> @benjamn in #7157 -
Consider
cache.reseta destructive method, likecache.evictandcache.modify. <br/> @joshjg in #7150 -
Avoid refetching observerless queries with
reFetchObservableQueries. <br/> @joshjg in #7146
-
- 3.2.310 Oct 2020
Release notes2 sources agree
Open source → - 3.2.21 Oct 2020
- 3.2.123 Sept 2020
Release notes2 sources agree
Open source →Bug Fixes
-
Fix
relayStylePaginationto handle the possibility that edges might be normalizedReferenceobjects (uncommon). <br/> @anark and @benjamn in #7023 -
Disable "Missing cache result fields" warnings when
returnPartialDataistrue. <br/> @hwillson in #7055
Improvements
- Mark
subscriptions-transport-wspeerDependencyas optional. <br/> @MasterOdin in #7047
-
- 3.2.014 Sept 2020
Release notes
Open source →Apollo Client 3.2.0
Bug Fixes
-
Use
options.nextFetchPolicyinternally to restore originalFetchPolicyafter polling withfetchPolicy: "network-only", so that polling does not interfere with normal query watching. @benjamn in #6893 -
Initialize
ObservableQueryinupdateObservableQueryeven ifskipistrue. @mu29 in #6999 -
Prevent full reobservation of queries affected by optimistic mutation updates, while still delivering results from the cache. @benjamn in #6854
Improvements
-
In TypeScript, all APIs that take
DocumentNodeparameters now may alternatively takeTypeDocumentNode<Data, Variables>. This type has the same JavaScript representation but allows the APIs to infer the data and variable types instead of requiring you to specify types explicitly at the call site. @dotansimha in #6720 -
Bring back an improved form of heuristic fragment matching, by allowing
possibleTypesto specify subtype regular expression strings, which count as matches if the written result object has all the fields expected for the fragment. @benjamn in #6901 -
Allow
options.nextFetchPolicyto be a function that takes the currentFetchPolicyand returns a new (or the same)FetchPolicy, makingnextFetchPolicymore suitable for global use indefaultOptions.watchQuery. @benjamn in #6893 -
Implement
useReactiveVarhook for consuming reactive variables in React components. @benjamn in #6867 -
Move
apollo-link-persisted-queriesimplementation to@apollo/client/link/persisted-queries. Try running our automated imports transform to handle this conversion, if you're usingapollo-link-persisted-queries. @hwillson in #6837 -
Disable feud-stopping logic after any
cache.evictorcache.modifyoperation. @benjamn in #6817 and #6898 -
Throw if
writeFragmentcannot identifyoptions.datawhen nooptions.idprovided. @jcreighton in #6859 -
Provide
options.storageobject tocache.modifyfunctions, as provided toreadandmergefunctions. @benjamn in #6991 -
Allow
cache.modifyfunctions to returndetails.INVALIDATE(similar todetails.DELETE) to invalidate the current field, causing affected queries to rerun, even if the field's value is unchanged. @benjamn in #6991 -
Support non-default
ErrorPolicyvalues (that is,"ignore"and"all", in addition to the default value"none") for mutations and subscriptions, like we do for queries. @benjamn in #7003 -
Remove invariant forbidding a
FetchPolicyofcache-onlyinObservableQuery#refetch. @benjamn in ccb0a79a, fixing #6702
Apollo Client 3.1.5
Bug Fixes
Improvements
Apollo Client 3.1.4
Bug Fixes
-
Restrict root object identification to
ROOT_QUERY(the ID corresponding to the rootQueryobject), allowingMutationandSubscriptionas user-defined types. @benjamn in #6914 -
Prevent crash when
pageInfoand emptyedgesare received byrelayStylePagination. @fracmak in #6918
Apollo Client 3.1.3
Bug Fixes
- Consider only
result.data(rather than all properties ofresult) when settling cache feuds. @danReynolds in #6777
Improvements
- Provide jscodeshift transform for automatically converting Apollo Client 2.x
importdeclarations to use Apollo Client 3.x packages. Instructions. @dminkovsky and @jcreighton in #6486
Apollo Client 3.1.2
Bug Fixes
Improvements
Apollo Client 3.1.1
Bug Fixes
Additional notes2 sources agree
Open source →Bug Fixes
-
Use
options.nextFetchPolicyinternally to restore originalFetchPolicyafter polling withfetchPolicy: "network-only", so that polling does not interfere with normal query watching. <br/> @benjamn in #6893 -
Initialize
ObservableQueryinupdateObservableQueryeven ifskipistrue. <br/> @mu29 in #6999 -
Prevent full reobservation of queries affected by optimistic mutation updates, while still delivering results from the cache. <br/> @benjamn in #6854
Improvements
-
In TypeScript, all APIs that take
DocumentNodeparameters now may alternatively takeTypeDocumentNode<Data, Variables>. This type has the same JavaScript representation but allows the APIs to infer the data and variable types instead of requiring you to specify types explicitly at the call site. <br/> @dotansimha in #6720 -
Bring back an improved form of heuristic fragment matching, by allowing
possibleTypesto specify subtype regular expression strings, which count as matches if the written result object has all the fields expected for the fragment. <br/> @benjamn in #6901 -
Allow
options.nextFetchPolicyto be a function that takes the currentFetchPolicyand returns a new (or the same)FetchPolicy, makingnextFetchPolicymore suitable for global use indefaultOptions.watchQuery. <br/> @benjamn in #6893 -
Implement
useReactiveVarhook for consuming reactive variables in React components. <br/> @benjamn in #6867 -
Move
apollo-link-persisted-queriesimplementation to@apollo/client/link/persisted-queries. Try running our automated imports transform to handle this conversion, if you're usingapollo-link-persisted-queries. <br/> @hwillson in #6837 -
Disable feud-stopping logic after any
cache.evictorcache.modifyoperation. <br/> @benjamn in #6817 and #6898 -
Throw if
writeFragmentcannot identifyoptions.datawhen nooptions.idprovided. <br/> @jcreighton in #6859 -
Provide
options.storageobject tocache.modifyfunctions, as provided toreadandmergefunctions. <br/> @benjamn in #6991 -
Allow
cache.modifyfunctions to returndetails.INVALIDATE(similar todetails.DELETE) to invalidate the current field, causing affected queries to rerun, even if the field's value is unchanged. <br/> @benjamn in #6991 -
Support non-default
ErrorPolicyvalues (that is,"ignore"and"all", in addition to the default value"none") for mutations and subscriptions, like we do for queries. <br/> @benjamn in #7003 -
Remove invariant forbidding a
FetchPolicyofcache-onlyinObservableQuery#refetch. <br/> @benjamn in ccb0a79a, fixing #6702
-
- 3.2.0-rc.011 Sept 2020pre-release
Nothing published for this version
- 3.2.0-beta.1210 Sept 2020pre-release
Nothing published for this version
- 3.2.0-beta.1110 Sept 2020pre-release
Nothing published for this version
- 3.2.0-beta.108 Sept 2020pre-release
Nothing published for this version
- 3.2.0-beta.928 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.828 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.727 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.625 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.525 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.420 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.318 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.210 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.16 Aug 2020pre-release
Nothing published for this version
- 3.2.0-beta.04 Aug 2020pre-release
Nothing published for this version
- 3.1.59 Sept 2020
- 3.1.427 Aug 2020
- 3.1.36 Aug 2020
Release notes2 sources agree
Open source →Bug Fixes
- Consider only
result.data(rather than all properties ofresult) when settling cache feuds. <br/> @danReynolds in #6777
Improvements
- Provide jscodeshift transform for automatically converting Apollo Client 2.x
importdeclarations to use Apollo Client 3.x packages. Instructions. <br/> @dminkovsky and @jcreighton in #6486
- Consider only
- 3.1.23 Aug 2020
- 3.1.2-pre.031 Jul 2020pre-release
Nothing published for this version
- 3.1.129 Jul 2020
- 3.1.028 Jul 2020
Release notes
Open source →Apollo Client 3.1.0
Bug Fixes
-
Rework interdependencies between
@apollo/client/*entry points, so that CommonJS and ESM modules are supported equally well, without any duplication of shared code. @benjamn in #6656 and #6657 -
Tolerate
!==callback functions (likeonCompletedandonError) inuseQueryoptions, since those functions are almost always freshly evaluated each timeuseQueryis called. @hwillson and @benjamn in #6588 -
Respect
context.queryDeduplicationif provided, and otherwise fall back toclient.deduplication(as before). @igaloly in #6261 and @Kujawadl in #6526 -
Refactor
ObservableQuery#getCurrentResultto reenable immediate delivery of warm cache results. As part of this refactoring, theApolloCurrentQueryResulttype was eliminated in favor ofApolloQueryResult. @benjamn in #6710 -
Avoid clobbering
defaultOptionswithundefinedvalues. @benjamn in #6715
Improvements
-
Apollo Client will no longer modify
options.fetchPolicyunless you passoptions.nextFetchPolicyto request an explicit change inFetchPolicyafter the current request. Although this is technically a breaking change,options.nextFieldPolicymakes it easy to restore the old behavior (by passingcache-first). @benjamn in #6712, reverting #6353 -
Errors of the form
Invariant Violation: 42thrown in production can now be looked up much more easily, by consulting the auto-generated@apollo/client/invariantErrorCodes.jsfile specific to your@apollo/clientversion. @benjamn in #6665 -
Make the
clientfield of theMutationResulttype non-optional, since it is always provided. @glasser in #6617 -
Allow passing an asynchronous
options.renderFunctiontogetMarkupFromTree. @richardscarrott in #6576 -
Ergonomic improvements for
mergeandkeyArgsfunctions in cache field policies. @benjamn in #6714
Apollo Client 3.0.2
Bug Fixes
- Avoid duplicating
graphql/execution/executedependency in CommonJS bundle for@apollo/client/link/schema, fixinginstanceoferrors reported in #6621 and #6614. @benjamn in #6624
Apollo Client 3.0.1
Bug Fixes
Additional notes2 sources agree
Open source →Bug Fixes
-
Rework interdependencies between
@apollo/client/*entry points, so that CommonJS and ESM modules are supported equally well, without any duplication of shared code. <br/> @benjamn in #6656 and #6657 -
Tolerate
!==callback functions (likeonCompletedandonError) inuseQueryoptions, since those functions are almost always freshly evaluated each timeuseQueryis called. <br/> @hwillson and @benjamn in #6588 -
Respect
context.queryDeduplicationif provided, and otherwise fall back toclient.deduplication(as before). <br/> @igaloly in #6261 and @Kujawadl in #6526 -
Refactor
ObservableQuery#getCurrentResultto reenable immediate delivery of warm cache results. As part of this refactoring, theApolloCurrentQueryResulttype was eliminated in favor ofApolloQueryResult. <br/> @benjamn in #6710 -
Avoid clobbering
defaultOptionswithundefinedvalues. <br/> @benjamn in #6715
Improvements
-
Apollo Client will no longer modify
options.fetchPolicyunless you passoptions.nextFetchPolicyto request an explicit change inFetchPolicyafter the current request. Although this is technically a breaking change,options.nextFieldPolicymakes it easy to restore the old behavior (by passingcache-first). <br/> @benjamn in #6712, reverting #6353 -
Errors of the form
Invariant Violation: 42thrown in production can now be looked up much more easily, by consulting the auto-generated@apollo/client/invariantErrorCodes.jsfile specific to your@apollo/clientversion. <br/> @benjamn in #6665 -
Make the
clientfield of theMutationResulttype non-optional, since it is always provided. <br/> @glasser in #6617 -
Allow passing an asynchronous
options.renderFunctiontogetMarkupFromTree. <br/> @richardscarrott in #6576 -
Ergonomic improvements for
mergeandkeyArgsfunctions in cache field policies. <br/> @benjamn in #6714
-
- 3.1.0-pre.427 Jul 2020pre-release
Nothing published for this version
- 3.1.0-pre.327 Jul 2020pre-release
Nothing published for this version
- 3.1.0-pre.224 Jul 2020pre-release
Nothing published for this version