@apollo/client
4.3.5 · 19 Oct 2026MIT5.3M / weekRepositoryHomepagenpmAtom feed
3.14.1 is the newest release of 3.x.
In short
17 breaking1 deprecated48 new1 faster20 fixed66 changed1 internal
- breaking
****
ApolloClientis now only available as a named export. The defaultApolloClientexport has been removed. - breaking
**** The
queryManagerproperty ofApolloClientinstances is now marked asprivate, paving the way for a more aggressive redesign of its API. - breaking
**** Apollo Client will no longer deliver "stale" results to
ObservableQueryconsumers, but will instead log more helpful errors about which cache fields were missing. - breaking
****
ApolloError's thrown by Apollo Client no longer prefix error messages withGraphQL error:orNetwork error:. To differentiate between GraphQL/network errors, refer toApolloError's publicgraphQLErrorsandnetworkErrorproperties. - breaking
**** Support for the
@livedirective has been removed, but might be restored in the future if a more thorough implementation is proposed. - breaking
**** Apollo Client 2.x allowed
@clientfields to be passed into thelinkchain ifresolverswere not set in the constructor. This allowed@clientfields to be passed into Links likeapollo-link-state. Apollo Client 3 enforces that@clientfields are local only, meaning they are no longer passed into thelinkchain, under any circumstances. - breaking
****
FragmentMatcher,HeuristicFragmentMatcher, andIntrospectionFragmentMatcherhave all been removed. We now recommend usingInMemoryCache’spossibleTypesoption instead. For more information see the DefiningpossibleTypesmanually section of the docs. - breaking
**** As promised in the Apollo Client 2.6 blog post, all cache results are now frozen/immutable.
Release note
Apollo Client 3.0.0
Improvements
⚠️ Note: As of 3.0.0, Apollo Client uses a new package name:
@apollo/client
ApolloClient
- breaking
****
ApolloClientis now only available as a named export. The defaultApolloClientexport has been removed.
@hwillson in #5425 - breaking
**** The
queryManagerproperty ofApolloClientinstances is now marked asprivate, paving the way for a more aggressive redesign of its API. - breaking
**** Apollo Client will no longer deliver "stale" results to
ObservableQueryconsumers, but will instead log more helpful errors about which cache fields were missing.
@benjamn in #6058 - breaking
****
ApolloError's thrown by Apollo Client no longer prefix error messages withGraphQL error:orNetwork error:. To differentiate between GraphQL/network errors, refer toApolloError's publicgraphQLErrorsandnetworkErrorproperties.
@lorensr in #3892 - breaking
**** Support for the
@livedirective has been removed, but might be restored in the future if a more thorough implementation is proposed.
@benjamn in #6221 - breaking
**** Apollo Client 2.x allowed
@clientfields to be passed into thelinkchain ifresolverswere not set in the constructor. This allowed@clientfields to be passed into Links likeapollo-link-state. Apollo Client 3 enforces that@clientfields are local only, meaning they are no longer passed into thelinkchain, under any circumstances.
@hwillson in #5982 [BREAKING?] Refactor
QueryManagerto make better use of observables and enforcefetchPolicymore reliably.
@benjamn in #6221- deprecated
The
updateQueryfunction previously required byfetchMorehas been deprecated with a warning, and will be removed in the next major version of Apollo Client. Please consider using amergefunction to handle incoming data instead of relying onupdateQuery.
@benjamn in #6464Helper functions for generating common pagination-related field policies may be imported from
@apollo/client/utilities. The most basic helper isconcatPagination, which emulates the concatenation behavior of typicalupdateQueryfunctions. A more sophisticated helper isoffsetLimitPagination, which implements offset/limit-based pagination. If you are consuming paginated data from a Relay-friendly API, userelayStylePagination. Feel free to use these helper functions as inspiration for your own field policies, and/or modify them to suit your needs.
@benjamn in #6465
Updated to work with
graphql@15.
@durchanek in #6194 and #6279
@hagmic in #6328Apollo Link core and HTTP related functionality has been merged into
@apollo/client. Functionality that was previously available through theapollo-link,apollo-link-http-commonandapollo-link-httppackages is now directly available from@apollo/client(e.g.import { HttpLink } from '@apollo/client'). TheApolloClientconstructor has also been updated to accept newuri,headersandcredentialsoptions. Ifuriis specified, Apollo Client will take care of creating the necessaryHttpLinkbehind the scenes.
@hwillson in #5412The
gqltemplate tag should now be imported from the@apollo/clientpackage, rather than thegraphql-tagpackage. Although thegraphql-tagpackage still works for now, future versions of@apollo/clientmay change the implementation details ofgqlwithout a major version bump.
@hwillson in #5451@apollo/client/corecan be used to import the Apollo Client core, which includes everything the main@apollo/clientpackage does, except for all React related functionality.
@kamilkisiela in #5541Several deprecated methods have been fully removed:
ApolloClient#initQueryManagerQueryManager#startQueryObservableQuery#currentResult
Apollo Client now supports setting a new
ApolloLink(or link chain) afternew ApolloClient()has been called, using theApolloClient#setLinkmethod.
@hwillson in #6193The final time a mutation
updatefunction is called, it can no longer accidentally read optimistic data from other concurrent mutations, which ensures the use of optimistic updates has no lasting impact on the state of the cache after mutations have finished.
@benjamn in #6551Apollo links that were previously maintained in github.com/apollographql/apollo-link have been merged into the Apollo Client project. They should be accessed using the new entry points listed in the migration guide.
@hwillson in #
InMemoryCache
⚠️ Note:
InMemoryCachehas been significantly redesigned and rewritten in Apollo Client 3.0. Please consult the migration guide and read the new documentation to understand everything that has been improved.
The
InMemoryCacheconstructor should now be imported directly from@apollo/client, rather than from a separate package. Theapollo-cache-inmemorypackage is no longer supported.The
@apollo/client/cacheentry point can be used to importInMemoryCachewithout importing other parts of the Apollo Client codebase. > @hwillson in #5577- breaking
****
FragmentMatcher,HeuristicFragmentMatcher, andIntrospectionFragmentMatcherhave all been removed. We now recommend usingInMemoryCache’spossibleTypesoption instead. For more information see the DefiningpossibleTypesmanually section of the docs.
@benjamn in #5073 - breaking
**** As promised in the Apollo Client 2.6 blog post, all cache results are now frozen/immutable.
@benjamn in #5153 - breaking
**** Eliminate "generated" cache IDs to avoid normalizing objects with no meaningful ID, significantly reducing cache memory usage. This might be a backwards-incompatible change if your code depends on the precise internal representation of normalized data in the cache.
@benjamn in #5146 - breaking
****
InMemoryCachewill no longer merge the fields of written objects unless the objects are known to have the same identity, and the values of fields with the same name will not be recursively merged unless a custommergefunction is defined by a field policy for that field, within a type policy associated with the__typenameof the parent object.
@benjamn in #5603 - breaking
****
InMemoryCachenow throws when data with missing or undefined query fields is written into the cache, rather than just warning in development.
@benjamn in #6055 - breaking
****
client|cache.writeDatahave been fully removed.writeDatausage is one of the easiest ways to turn faulty assumptions about how the cache represents data internally, into cache inconsistency and corruption.client|cache.writeQuery,client|cache.writeFragment, and/orcache.modifycan be used to update the cache.
@benjamn in #5923 InMemoryCachenow supports tracing garbage collection and eviction. Note that the signature of theevictmethod has been simplified in a potentially backwards-incompatible way.
@benjamn in #5310[beta-BREAKING] Please note that the
cache.evictmethod now requiresCache.EvictOptions, though it previously supported positional arguments as well.
@danReynolds in #6141
@benjamn in #6364Removing an entity object using the
cache.evictmethod does not automatically remove dangling references to that entity elsewhere in the cache, but dangling references will be automatically filtered from lists whenever those lists are read from the cache. You can define a custom fieldreadfunction to customize this behavior. See #6412, #6425, and #6454 for further explanation.
Cache methods that would normally trigger a broadcast, like
cache.evict,cache.writeQuery, andcache.writeFragment, can now be called with a named options object, which supports abroadcast: booleanproperty that can be used to silence the broadcast, for situations where you want to update the cache multiple times without triggering a broadcast each time.
@benjamn in #6288InMemoryCachenowconsole.warns in development whenever non-normalized data is dangerously overwritten, with helpful links to documentation about normalization and custommergefunctions.
@benjamn in #6372The result caching system (introduced in #3394) now tracks dependencies at the field level, rather than at the level of whole entity objects, allowing the cache to return identical (
===) results much more often than before.
@benjamn in #5617InMemoryCachenow has a method calledmodifywhich can be used to update the value of a specific field within a specific entity object:cache.modify({ id: cache.identify(post), fields: { comments(comments: Reference[], { readField }) { return comments.filter( (comment) => idToRemove !== readField("id", comment) ); }, }, });This API gracefully handles cases where multiple field values are associated with a single field name, and also removes the need for updating the cache by reading a query or fragment, modifying the result, and writing the modified result back into the cache. Behind the scenes, the
cache.evictmethod is now implemented in terms ofcache.modify.
@benjamn in #5909
and #6178InMemoryCacheprovides a new API for storing client state that can be updated from anywhere:import { makeVar } from "@apollo/client"; const v = makeVar(123); console.log(v()); // 123 console.log(v(v() + 1)); // 124 console.log(v()); // 124 v("asdf"); // TS type errorThese variables are reactive in the sense that updating their values invalidates any previously cached query results that depended on the old values.
@benjamn in
#5799,
#5976, and
#6512Various cache read and write performance optimizations, cutting read and write times by more than 50% in larger benchmarks.
@benjamn in #5948The
cache.readQueryandcache.writeQuerymethods now accept anoptions.idstring, which eliminates most use cases forcache.readFragmentandcache.writeFragment, and skips the implicit conversion of fragment documents to query documents performed bycache.{read,write}Fragment.
@benjamn in #5930Support
cache.identify(entity)for easily computing entity ID strings.
@benjamn in #5642Support eviction of specific entity fields using
cache.evict(id, fieldName).
@benjamn in #5643Make
InMemoryCache#evictremove data from allEntityStorelayers.
@benjamn in #5773Stop paying attention to
previousResultinInMemoryCache.
@benjamn in #5644Improve optimistic update performance by limiting cache key diversity.
@benjamn in #5648Custom field
readfunctions can read from neighboring fields using thereadField(fieldName)helper, and may also read fields from other entities by callingreadField(fieldName, objectOrReference).
@benjamn in #5651Expose cache
modifyandidentifyto the mutateupdatefunction.
@hwillson in #5956Add a default
gcimplementation toApolloCache.
@justinwaite in #5974
React
- breaking
**** The
QueryOptions,MutationOptions, andSubscriptionOptionsReact Apollo interfaces have been renamed toQueryDataOptions,MutationDataOptions, andSubscriptionDataOptions(to avoid conflicting with similarly named and exported Apollo Client interfaces). - breaking
**** Results with
loading: truewill no longer redeliver previous data, though they may provide partial data from the cache, when available.
@benjamn in #6566 [BREAKING?] Remove
fixPolyfills.ts, except when bundling for React Native. If you have trouble withMaporSetoperations due to frozen key objects in React Native, either update React Native to version 0.59.0 (or 0.61.x, if possible) or investigate whyfixPolyfills.native.jsis not included in your bundle.
@benjamn in #5962The contents of the
@apollo/react-hookspackage have been merged into@apollo/client, enabling the following all-in-oneimport:import { ApolloClient, ApolloProvider, useQuery } from "@apollo/client";React SSR features (previously accessed via
@apollo/react-ssr) can now be accessed from the separate Apollo Client entry point of@apollo/client/react/ssr. These features are not included in the default@apollo/clientbundle.
@hwillson in #6499
General
- breaking
**** Removed
graphql-anywheresince it's no longer used by Apollo Client.
@hwillson in #5159 - breaking
**** Removed
apollo-boostsince Apollo Client 3.0 provides a boost like getting started experience out of the box.
@hwillson in #5217 - breaking
**** We are no longer exporting certain (intended to be) internal utilities. If you are depending on some of the lesser known exports from
apollo-cache,apollo-cache-inmemory, orapollo-utilities, they may no longer be available from@apollo/client.
@hwillson in #5437 and #5514Utilities that were previously externally available through the
apollo-utilitiespackage are now only available by importing from@apollo/client/utilities. > @hwillson in #5683 Make sure all
graphql-tagpublic exports are re-exported.
@hwillson in #5861Fully removed
prettier. The Apollo Client team has decided to no longer automatically enforce code formatting across the codebase. In most cases existing code styles should be followed as much as possible, but this is not a hard and fast rule.
@hwillson in #5227Make sure
ApolloContextplays nicely with IE11 when storing the shared context.
@ms in #5840Migrated React Apollo HOC and Components functionality into Apollo Client, making it accessible from
@apollo/client/react/componentsand@apollo/client/react/hocentry points.
@hwillson in #6558Support passing a
contextobject through the link execution chain when using subscriptions.
@sgtpepper43 in #4925MockSubscriptionLinknow supports multiple subscriptions.
@dfrankland in #6081
Bug Fixes
useMutationadjustments to help avoid an infinite loop / too many renders issue, caused by unintentionally modifying theuseStatebased mutation result directly.
@hwillson in #5770Missing
__typenamefields no longer cause theInMemoryCache#diffresult to be markedcomplete: false, if those fields were added byInMemoryCache#transformDocument(which callsaddTypenameToDocument).
@benjamn in #5787Fixed an issue that allowed
@client @exportbased queries to lead to extra unnecessary network requests being fired.
@hwillson in #5946Refined
useLazyQuerytypes to help prevent runtime errors.
@benmosher in #5935Make sure
@client @exportvariables used in watched queries are updated each time the query receives new data that changes the value of the@exportvariable.
@hwillson in #5986Ensure
useMutationpasses a definederrorPolicyoption into its underlyingApolloClient.mutate()call.
@jamesreggio in #5863useQuery: Prevent new data re-render attempts during an existing render. This helps avoid React 16.13.0's "Cannot update a component from inside the function body of a different component" warning (#17099).
@hwillson in #6107Expand
ApolloErrortypings to includeServerErrorandServerParseError.
@dmarkow in #6319Fast responses received over the link chain will no longer conflict with
skipsettings.
@hwillson in #6587
Apollo Client 2.6.8
Apollo Client (2.6.8)
Update the
fetchMoretype signature to acceptcontext.
@koenpunt in #5147Fix type for
Resolverand use it in the definition ofResolvers.
@peoplenarthax in #4943Local state resolver functions now receive a
fragmentMap: FragmentMap
object, in addition to thefield: FieldNodeobject, via theinfo
parameter.
@mjlyons in #5388Documentation updates.
@tomquirk in #5645
@Sequoia in #5641
@phryneas in #5628
@AryanJ-NYC in #5560
GraphQL Anywhere (4.2.6)
Fix
filteredge case involvingnull.
@lifeiscontent in #5110
Apollo Boost (0.4.7)
Replace
GlobalFetchreference withWindowOrWorkerGlobalScope.
@abdonrd in #5373Add
assumeImmutableResultstyping to apollo boostPresetConfiginterface.
@bencoullie in #5571
Apollo Client (2.6.4)
Apollo Client (2.6.4)
Modify
ObservableQueryto allow queries withnotifyOnNetworkStatusChange
to be notified when loading after an error occurs.
@jasonpaulos in #4992Add
graphqlas apeerDependencyofapollo-cacheandgraphql-anywhere.
@ssalbdivad in #5081
Apollo Client (2.6.3)
Apollo Client (2.6.3)
A new
ObservableQuery.resetQueryStoreErrors()method is now available that
can be used to clear outObservableQueryquery store errors.
@hwillson in #4941Documentation updates.
@michael-watson in #4940
@hwillson in #4969
Apollo Client (2.6.1)
Apollo Utilities 1.3.2
Apollo Client (2.6.1)
In all Apollo Client packages, the compilation of
lib/bundle.esm.jstolib/bundle.cjs.jsandlib/bundle.umd.jsnow uses Babel instead of Rollup, since Babel correctly compiles some edge cases that neither Rollup nor TypeScript compile correctly.
@benjamn in #4911
Apollo Cache In-Memory 1.6.1
Apollo Utilities 1.3.1
The
isEqualfunction has been reimplemented using thelodash.isequalnpm package, to better support circular references. Since thelodash.isequalpackage is already used byreact-apollo, this change is likely to decrease total bundle size.
@capaj in #4915
Apollo Client (2.6.0)
In production,
invariant(condition, message)failures will now include
a unique error code that can be used to trace the error back to the
point of failure.
@benjamn in #4521
Apollo Client 2.6.0
If you can be sure your application code does not modify cache result objects (see
freezeResultsnote below), you can unlock substantial performance improvements by communicating this assumption vianew ApolloClient({ assumeImmutableResults: true });which allows the client to avoid taking defensive snapshots of past results using
cloneDeep, as explainedIdentical overlapping queries are now deduplicated internally by
apollo-client, rather than using theapollo-link-deduppackage.
@benjamn in commit 7cd8479fThe
FetchPolicytype has been split into two types, so that passingcache-and-networktoApolloClient#queryis now forbidden at the type level, whereas previously it was forbidden by a runtimeinvariantassertion:export type FetchPolicy = | "cache-first" | "network-only" | "cache-only" | "no-cache" | "standby"; export type WatchQueryFetchPolicy = FetchPolicy | "cache-and-network";
The exception thrown if you ignore the type error has also been improved to explain the motivation behind this restriction.
Issue #3130 (comment) and commit cf069bc7Avoid updating (and later invalidating) cache watches when
fetchPolicyis'no-cache'.
@bradleyayers in PR #4573, part of issue #3452Remove temporary
queryIdafterfetchMorecompletes.
@doomsower in #4440Call
clearStorecallbacks after clearing store.
@ds8k in #4695Perform all
DocumentNodetransforms once, and cache the results.
@benjamn in #4601Accommodate
@client @exportvariable changes inObservableQuery.
@hwillson in #4604Support the
returnPartialDataoption for watched queries again.
@benjamn in #4743Preserve
networkStatusfor incompletecache-and-networkqueries.
@benjamn in #4765Preserve
cache-and-networkfetchPolicywhen refetching.
@benjamn in #4840Update the React Native docs to remove the request for external example apps that we can link to. We're no longer going to manage a list of external example apps.
@hwillson in #4531Polling queries are no longer batched together, so their scheduling should be more predictable.
@benjamn in #4800
Apollo Cache In-Memory 1.6.0
Support
new InMemoryCache({ freezeResults: true })to help enforce immutability.
@benjamn in #4514Allow
IntrospectionFragmentMatcherto match fragments against the rootQuery, asHeuristicFragmentMatcherdoes.
@rynobax in #4620Rerential identity (
===) of arrays in cache results will now be preserved for unchanged data.
@benjamn in commit f3091d6aAvoid adding
__typenamefield to@clientselection sets that have been@exported as input variables.
@benjamn in #4784
GraphQL Anywhere 4.2.2
The
graphqlfunction can now be configured to ignore@includeand@skipdirectives (useful when walking a fragment to generate prop types
or filter result data).
@GreenGremlin in #4373
Apollo Client 2.5.1
apollo-client 2.5.1
graphql-anywhere 4.2.1
Apollo Client (2.5.0)
Apollo Client (2.5.0)
Introduces new local state management features (client-side schema
and local resolver /@clientsupport) and many overall code improvements,
to help reduce the Apollo Client bundle size.
#4361Revamped CJS and ESM bundling approach with Rollup.
@rosskevin in #4261Fixes an issue where the
QueryManagerwas accidentally returning cached
data fornetwork-onlyqueries.
@danilobuerger in #4352Fixed an issue in the repo
.gitattributesthat was causing binary files
to have their line endings adjusted, and cleaned up corrupted documentation
images (ref: #4232).
@rajington in #4438Improve (and shorten) query polling implementation.
PR #4337
Apollo Client (2.4.13)
Apollo Client (2.4.13)
Properly type
setQueryand fix now typed callers.
@danilobuerger in #4369Align with the React Apollo decision that result
datashould beTData | undefinedinstead ofTData | {}.
@danilobuerger in #4356Documentation updates.
@danilobuerger in #4340
@justyn-clark in #4383
@jtassin in #4287
@Gongreg in #4386
@davecardwell in #4399
@michaelknoch in #4384
Apollo Client (2.4.12)
Apollo Client (2.4.12)
Support
ApolloClient#stopmethod for safe client disposal.
PR #4336
Apollo Client (2.4.11)
Added explicit dependencies on the
tslibpackage to all client
packages to fix
Issue #4332.
Apollo Client (2.4.11)
Reverted some breaking changes accidentally released in a patch version
(2.4.10). PR #4334
Apollo Client (2.4.10)
Apollo Client (2.4.10)
The
apollo-clientpackage no longer exports aprintASTfunction fromgraphql/language/printer. If you need this functionality, import it
directly:import { print } from "graphql/language/printer"Query polling now uses a simpler scheduling strategy based on a single
setTimeoutinterval rather than multiplesetIntervaltimers. The new
timer fires at the rate of the fastest polling interval, and queries
with longer polling intervals fire whenever the time elapsed since they
last fired exceeds their desired interval.
PR #4243
Apollo Cache In-Memory (1.4.1)
The
optimismnpm package has been updated to a version (0.6.9) that
provides its own TypeScript declarations, which should fix problems like
Issue #4327.
PR #4331Error messages involving GraphQL queries now print the queries using
JSON.stringifyinstead of theprintfunction exported by thegraphqlpackage, to avoid pulling unnecessary printing logic into your
JavaScript bundle.
PR #4234The
QueryKeyMakerabstraction has been removed, meaning that cache
results for non-identical queries (or sub-queries) with equivalent
structure will no longer be cached together. This feature was a nice
optimization in certain specific use cases, but it was not worth the
additional complexity or bundle size.
PR #4245
Apollo Utilities (1.1.1)
The
flattenSelectionshelper function is no longer exported fromapollo-utilities, sincegetDirectiveNameshas been reimplemented
without usingflattenSelections, andflattenSelectionshas no clear
purpose now. If you need the old functionality, use a visitor:import { visit } from "graphql/language/visitor"; function flattenSelections(selection: SelectionNode) { const selections: SelectionNode[] = []; visit(selection, { SelectionSet(ss) { selections.push(...ss.selections); }, }); return selections; }
Apollo Client (2.4.9)
Apollo Client (2.4.9)
Apollo Client has been updated to use
graphql14.x as a dev dependency.
@hwillson in #4233The
onClearStorefunction can now be used to register callbacks that should
be triggered when callingclearStore.
@joe-re in #4082Make
isApolloErroravailable for external use.
@FredyC in #4223The
QueryManagernow callscompleteon the observables used by
Apollo Client's Subscription handling. This gives finite subscriptions a
chance to handle cleanup.
@sujeetsr in #4290Documentation updates.
@lifedup in #3931
@Dem0n3D in #4008
@anand-sundaram-zocdoc in #4009
@mattphoto in #4026
@birge in #4029
@mxstbr in #4127
@Caerbannog in #4140
@jedwards1211 in #4179
@nutboltu in #4182
@CarloPalinckx in #4189
@joebernard in #4206
@evans in #4213
@danilobuerger in #4214
@stubailo in #4220
@haysclark in #4255
@shelmire in #4266
@peggyrayzis in #4280
@caydie-tran in #4300
Apollo Utilities (1.1.0)
Transformation utilities have been refactored to work with
graphql14.x.
GraphQL AST's are no longer being directly modified.
@hwillson in #4233
Apollo Cache In-Memory (1.4.0)
The speed and memory usage of optimistic reads and writes has been
improved dramatically using a new layering technique that does not
require copying the non-optimistic contents of the cache.
PR #4319The
RecordingCacheabstraction has been removed, and thus is no longer
exported fromapollo-cache-inmemory.
PR #4319Export the optimism
wrapfunction using ES2015 export syntax, instead of
CommonJS.
@ardatan in #4158
Apollo Client (2.4.8)
Apollo Client (2.4.8)
Documentation and config updates.
@justinanastos in #4187
@PowerKiKi in #3693
@nandito in #3865Schema/AST tranformation utilities have been updated to work properly with
@clientdirectives.
@justinmakaila in #3482
Apollo Cache In-Memory (1.3.12)
Avoid using
DepTrackingCachefor optimistic reads.
PR #4521When creating an
InMemoryCacheobject, it's now possible to disable the
result caching behavior introduced in #3394,
either for diagnostic purposes or because the benefit of caching repeated
reads is not worth the extra memory usage in your application:new InMemoryCache({ resultCaching: false, });Part of PR #4521.
Apollo Client (2.4.7)
Apollo Client (2.4.7)
The
ApolloClientconstructor has been updated to acceptnameandversionparams, that can be used to support Apollo Server Client Awareness
functionality. These client awareness properties are passed into the
defined Apollo Link chain, and are then ultimately sent out as custom
headers with outgoing requests.
@hwillson in #4154
Apollo Boost (0.1.22)
No changes.
Apollo Cache (1.1.21)
No changes.
Apollo Cache In-Memory (1.3.11)
No changes.
Apollo Utilities (1.0.26)
No changes.
Graphql Anywhere (4.1.23)
No changes.
Apollo Client (2.4.6)
Apollo Cache In-Memory (1.3.10)
Added some
returns to prevent errors withnoImplicitReturns
TypeScript rule.
PR #4137Exclude the
src/directory when publishingapollo-cache-inmemory.
Issue #4083
Apollo Client (2.4.5)
Optimistic tests cleanup.
PR #3834 by
@joshribakoffDocumentation updates.
PR #3840 by
@chentsulin and
PR #3844 by
@lorensrImplement
ObservableQuery#isDifferentFromLastResultto fix
Issue #4054 and
Issue #4031.
PR #4069
Apollo Cache (1.1.20)
Add
readQuerytest to make sure options aren't mutated.
@CarloPalinckx in
#3838
Apollo Cache In-Memory (1.3.9)
Avoid modifying source objects when merging cache results.
Issue #4081
PR #4089
Apollo Utilities (1.0.25)
Fix
apollo-utilitiesisEqualbug due to missinghasOwnProperty
check. PR #4072
Apollo Client (2.4.4)
Apollo Utilities (1.0.24)
Discard property accessor functions in
cloneDeephelper, to fix
issue #4034.Unconditionally remove
cloneDeepproperty accessors.
PR #4039Avoid copying non-enumerable and/or
Symbolkeys incloneDeep.
PR #4052
Apollo Cache In-Memory (1.3.7)
Throw when querying non-scalar objects without a selection set.
Issue #4025
PR #4038Work around spec non-compliance of
Map#setandSet#addin IE11.
Issue #4024
PR #4012
Apollo Client (2.4.3)
Add additional checks to make sure we don't try to set the network status
of queries in the store, when the store doesn't exist.
@i6mi6 in #3914Documentation updates.
@shanonvl in #3925
@ojh102 in #3920
@Bkucera in #3919
@j4chou in #3915
@billfienberg in #3886
@TLadd in #3884The
ObservableQueryclass now makes a deep clone oflastResultwhen
first received, so that theisDifferentResultlogic will not be
confused if the result object is modified later.
Issue #3992
PR #4032
Apollo Cache In-Memory (1.3.6)
Optimize repeated
apollo-cache-inmemoryreads by caching partial query
results, for substantial performance improvements. As a consequence, watched
queries will not be rebroadcast unless the data have changed.
PR #3394Include root ID and fragment matcher function in cache keys computed by
StoreReader#executeStoreQueryandexecuteSelectionSet, and work
around bugs in the React NativeMapandSetpolyfills.
PR #3964
React Native PR #21492 (pending)The
apollo-cache-inmemorypackage now allowsgraphql@^14.0.0as a
peer dependency.
Issue #3978The
apollo-cache-inmemorypackage now correctly broadcasts changes
even when the new data is===to the old data, since the contents of
the data object may have changed.
Issue #3992
PR #4032
Apollo GraphQL Anywhere (4.1.20)
Make
graphql-anywherefilterfunction generic (typescript).
@minznerjosh in #3929
Apollo Utilities (1.0.22)
The
fclonepackage has been replaced with a customcloneDeep
implementation that is tolerant of cycles, symbol properties, and
non-enumerable properties.
PR #4032
Apollo Boost (0.1.17)
Remove duplicate InMemoryCache export for Babel 6 compatibility.
Issue #3910
PR #3932
Apollo Cache (1.1.18)
No changes.
Apollo Client (2.4.2)
Apollo Client (2.4.2)
Apollo Client no longer deep freezes query results.
@hwillson in #3883A new
clearStoremethod has been added, that will remove all data from
the store. UnlikeresetStore, it will not refetch active queries after
removing store data.
@hwillson in #3885
Apollo Utilities (1.0.21)
Replace the custom
cloneDeepimplementation withfclone, to avoid crashing when
encountering circular references.
@hwillson in #3881
Apollo Boost (0.1.16)
No changes.
Apollo Cache (1.1.17)
No changes.
Apollo Cache In-Memory (1.2.10)
No changes.
Apollo GraphQL Anywhere (4.1.19)
No changes.