@apollo/client
Advanced tools
Changelog
3.10.4
#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 using cache.watchFragment
or the useFragment
hook to avoid rerendering when using these directives.
#11824 47ad806
Thanks @phryneas! - Create branded QueryRef
type without exposed properties.
This change deprecates QueryReference
in favor of a QueryRef
type that doesn't expose any properties.
This change also updates preloadQuery
to return a new PreloadedQueryRef
type, which exposes the toPromise
function as it does today. This means that query refs produced by useBackgroundQuery
and useLoadableQuery
now return QueryRef
types that do not have access to a toPromise
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 the PreloadedQueryRef
use case.
Migration is as simple as replacing all references to QueryReference
with QueryRef
, 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 to MockLink
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 the cache-and-network
fetch policy.
Changelog
3.10.2
#11821 2675d3c
Thanks @jerelmiller! - Fix a regression where rerendering a component with useBackgroundQuery
would recreate the queryRef
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.
Changelog
3.10.1
#11792 5876c35
Thanks @phryneas! - AutoCleanedCache: only schedule batched cache cleanup if the cache is full (fixes #11790)
#11799 1aca7ed
Thanks @phryneas! - RenderPromises
: use canonicalStringify
to serialize variables
to ensure query deduplication is properly applied even when variables
are specified in a different order.
#11803 bf9dd17
Thanks @phryneas! - Update the rehackt
dependency to ^0.1.0
#11756 60592e9
Thanks @henryqdineen! - Fix operation.setContext() type
Changelog
3.10.0
#11605 e2dd4c9
Thanks @alessbell! - Adds createMockFetch
utility for integration testing that includes the link chain
#11760 acd1982
Thanks @alessbell! - createTestSchema
now uses graphql-tools mergeResolvers
to merge resolvers instead of a shallow merge.
#11764 f046aa9
Thanks @alessbell! - Rename createProxiedSchema
to createTestSchema
and createMockFetch
to createSchemaFetch
.
#11777 5dfc79f
Thanks @alessbell! - Call createMockSchema
inside createTestSchema
.
#11774 2583488
Thanks @alessbell! - Add ability to set min and max delay in createSchemaFetch
#11605 e2dd4c9
Thanks @alessbell! - Adds proxiedSchema and createMockSchema testing utilities
#11465 7623da7
Thanks @alessbell! - Add watchFragment
method to the cache and expose it on ApolloClient, refactor useFragment
using watchFragment
.
#11743 78891f9
Thanks @jerelmiller! - Remove alpha designation for queryRef.toPromise()
to stabilize the API.
#11743 78891f9
Thanks @jerelmiller! - Remove alpha designation for createQueryPreloader
to stabilize the API.
#11783 440563a
Thanks @alessbell! - Moves new testing utilities to their own entrypoint, testing/experimental
#11757 9825295
Thanks @phryneas! - Adjust useReadQuery
wrapper logic to work with transported objects.
#11771 e72cbba
Thanks @phryneas! - Wrap useQueryRefHandlers
in wrapHook
.
#11754 80d2ba5
Thanks @alessbell! - Export WatchFragmentOptions
and WatchFragmentResult
from main entrypoint and fix bug where this
wasn't bound to the watchFragment
method on ApolloClient
.