Closed renovate[bot] closed 7 months ago
Latest commit: f6b9de12d3275c8201c8c989c54deee8386c59cf
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
This PR contains the following updates:
3.8.10
->3.9.3
Release Notes
apollographql/apollo-client (@apollo/client)
### [`v3.9.3`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#393) [Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.2...v3.9.3) ##### Patch Changes - [#11525](https://togithub.com/apollographql/apollo-client/pull/11525) [`dce923a`](https://togithub.com/apollographql/apollo-client/commit/dce923ae57eb6b6d889e2980635cb90e2c6cbca3) Thanks [@vezaynk](https://togithub.com/vezaynk)! - Allows passing in client via options to useFragment - [#11558](https://togithub.com/apollographql/apollo-client/pull/11558) [`8cba16f`](https://togithub.com/apollographql/apollo-client/commit/8cba16f041609443111ecf5fb58faea1b3e79569) Thanks [@alessbell](https://togithub.com/alessbell)! - Fix [`unbound-method`](https://togithub.com/apollographql/apollo-client/issues/11554) linter error on ObservableQuery methods exposed on useQuery's QueryResult object. ### [`v3.9.2`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#392) [Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.1...v3.9.2) ##### Patch Changes - [#11552](https://togithub.com/apollographql/apollo-client/pull/11552) [`6ac2b0c`](https://togithub.com/apollographql/apollo-client/commit/6ac2b0ce4d999c63478d85b40ad56ccda9624797) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Fix import in `useLazyRef` causing import issues in the nextjs package. ### [`v3.9.1`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#391) [Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.0...v3.9.1) ##### Patch Changes - [#11516](https://togithub.com/apollographql/apollo-client/pull/11516) [`8390fea`](https://togithub.com/apollographql/apollo-client/commit/8390fea13175bada8361ba5f0df2e43197085aba) Thanks [@phryneas](https://togithub.com/phryneas)! - Fix an incorrect string substitution in a warning message. - [#11515](https://togithub.com/apollographql/apollo-client/pull/11515) [`c9bf93b`](https://togithub.com/apollographql/apollo-client/commit/c9bf93bdc2816f7fdba96961e1435f463f440bd1) Thanks [@vladar](https://togithub.com/vladar)! - Avoid redundant refetchQueries call for mutation with no-cache policy (fixes [#10238](https://togithub.com/apollographql/apollo-client/issues/10238)) - [#11545](https://togithub.com/apollographql/apollo-client/pull/11545) [`84a6bea`](https://togithub.com/apollographql/apollo-client/commit/84a6beaeae69acdffea49ba6b8242752cc188172) Thanks [@alessbell](https://togithub.com/alessbell)! - Remove error thrown by `inFlightLinkObservables` intended to be removed before 3.9 release. ### [`v3.9.0`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#390) [Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.8.10...v3.9.0) ##### Minor Changes ##### Memory optimizations - [#11424](https://togithub.com/apollographql/apollo-client/pull/11424) [`62f3b6d`](https://togithub.com/apollographql/apollo-client/commit/62f3b6d0e89611e27d9f29812ee60e5db5963fd6) Thanks [@phryneas](https://togithub.com/phryneas)! - Simplify RetryLink, fix potential memory leak Historically, `RetryLink` would keep a `values` array of all previous values, in case the operation would get an additional subscriber at a later point in time. In practice, this could lead to a memory leak ([#11393](https://togithub.com/apollographql/apollo-client/pull/11393)) and did not serve any further purpose, as the resulting observable would only be subscribed to by Apollo Client itself, and only once - it would be wrapped in a `Concast` before being exposed to the user, and that `Concast` would handle subscribers on its own. - [#11435](https://togithub.com/apollographql/apollo-client/pull/11435) [`5cce53e`](https://togithub.com/apollographql/apollo-client/commit/5cce53e83b976f85d2d2b06e28cc38f01324fea1) Thanks [@phryneas](https://togithub.com/phryneas)! - Deprecates `canonizeResults`. Using `canonizeResults` can result in memory leaks so we generally do not recommend using this option anymore. A future version of Apollo Client will contain a similar feature without the risk of memory leaks. - [#11254](https://togithub.com/apollographql/apollo-client/pull/11254) [`d08970d`](https://togithub.com/apollographql/apollo-client/commit/d08970d348cf4ad6d80c6baf85b4a4cd4034a3bb) Thanks [@benjamn](https://togithub.com/benjamn)! - Decouple `canonicalStringify` from `ObjectCanon` for better time and memory performance. - [#11356](https://togithub.com/apollographql/apollo-client/pull/11356) [`cc4ac7e`](https://togithub.com/apollographql/apollo-client/commit/cc4ac7e1917f046bcd177882727864eed40b910e) Thanks [@phryneas](https://togithub.com/phryneas)! - Fix a potential memory leak in `FragmentRegistry.transform` and `FragmentRegistry.findFragmentSpreads` that would hold on to passed-in `DocumentNodes` for too long. - [#11370](https://togithub.com/apollographql/apollo-client/pull/11370) [`25e2cb4`](https://togithub.com/apollographql/apollo-client/commit/25e2cb431c76ec5aa88202eaacbd98fad42edc7f) Thanks [@phryneas](https://togithub.com/phryneas)! - `parse` function: improve memory management - use LRU `WeakCache` instead of `Map` to keep a limited number of parsed results - cache is initiated lazily, only when needed - expose `parse.resetCache()` method - [#11389](https://togithub.com/apollographql/apollo-client/pull/11389) [`139acd1`](https://togithub.com/apollographql/apollo-client/commit/139acd1153afa1445b69dcb4e139668ab8c5889a) Thanks [@phryneas](https://togithub.com/phryneas)! - `documentTransform`: use `optimism` and `WeakCache` instead of directly storing data on the `Trie` - [#11358](https://togithub.com/apollographql/apollo-client/pull/11358) [`7d939f8`](https://togithub.com/apollographql/apollo-client/commit/7d939f80fbc2c419c58a6c55b6a35ee7474d0379) Thanks [@phryneas](https://togithub.com/phryneas)! - Fixes a potential memory leak in `Concast` that might have been triggered when `Concast` was used outside of Apollo Client. - [#11344](https://togithub.com/apollographql/apollo-client/pull/11344) [`bd26676`](https://togithub.com/apollographql/apollo-client/commit/bd2667619700139af32a45364794d11f845ab6cf) Thanks [@phryneas](https://togithub.com/phryneas)! - Add a `resetCache` method to `DocumentTransform` and hook `InMemoryCache.addTypenameTransform` up to `InMemoryCache.gc` - [#11367](https://togithub.com/apollographql/apollo-client/pull/11367) [`30d17bf`](https://togithub.com/apollographql/apollo-client/commit/30d17bfebe44dbfa7b78c8982cfeb49afd37129c) Thanks [@phryneas](https://togithub.com/phryneas)! - `print`: use `WeakCache` instead of `WeakMap` - [#11387](https://togithub.com/apollographql/apollo-client/pull/11387) [`4dce867`](https://togithub.com/apollographql/apollo-client/commit/4dce8673b1757d8a3a4edd2996d780e86fad14e3) Thanks [@phryneas](https://togithub.com/phryneas)! - `QueryManager.transformCache`: use `WeakCache` instead of `WeakMap` - [#11369](https://togithub.com/apollographql/apollo-client/pull/11369) [`2a47164`](https://togithub.com/apollographql/apollo-client/commit/2a471646616e3af1b5c039e961f8d5717fad8f32) Thanks [@phryneas](https://togithub.com/phryneas)! - Persisted Query Link: improve memory management - use LRU `WeakCache` instead of `WeakMap` to keep a limited number of hash results - hash cache is initiated lazily, only when needed - expose `persistedLink.resetHashCache()` method - reset hash cache if the upstream server reports it doesn't accept persisted queries - [#10804](https://togithub.com/apollographql/apollo-client/pull/10804) [`221dd99`](https://togithub.com/apollographql/apollo-client/commit/221dd99ffd1990f8bd0392543af35e9b08d0fed8) Thanks [@phryneas](https://togithub.com/phryneas)! - use WeakMap in React Native with Hermes - [#11355](https://togithub.com/apollographql/apollo-client/pull/11355) [`7d8e184`](https://togithub.com/apollographql/apollo-client/commit/7d8e18493cd13134726c6643cbf0fadb08be2d37) Thanks [@phryneas](https://togithub.com/phryneas)! - InMemoryCache.gc now also triggers FragmentRegistry.resetCaches (if there is a FragmentRegistry) - [#11409](https://togithub.com/apollographql/apollo-client/pull/11409) [`2e7203b`](https://togithub.com/apollographql/apollo-client/commit/2e7203b3a9618952ddb522627ded7cceabd7f250) Thanks [@phryneas](https://togithub.com/phryneas)! - Adds an experimental `ApolloClient.getMemoryInternals` helper - [#11343](https://togithub.com/apollographql/apollo-client/pull/11343) [`776631d`](https://togithub.com/apollographql/apollo-client/commit/776631de4500d56252f6f5fdaf29a81c41dfbdc7) Thanks [@phryneas](https://togithub.com/phryneas)! - Add `reset` method to `print`, hook up to `InMemoryCache.gc` ##### Suspense-enabled data fetching on user interaction with `useLoadableQuery` - [#11300](https://togithub.com/apollographql/apollo-client/pull/11300) [`a815873`](https://togithub.com/apollographql/apollo-client/commit/a8158733cfa3e65180ec23518d657ea41894bb2b) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Introduces a new `useLoadableQuery` hook. This hook works similarly to `useBackgroundQuery` in that it returns a `queryRef` that can be used to suspend a component via the `useReadQuery` hook. It provides a more ergonomic way to load the query during a user interaction (for example when wanting to preload some data) that would otherwise be clunky with `useBackgroundQuery`. ```tsx function App() { const [loadQuery, queryRef, { refetch, fetchMore, reset }] = useLoadableQuery(query, options); return ( <>
- [#11202](https://togithub.com/apollographql/apollo-client/pull/11202) [`7c2bc08`](https://togithub.com/apollographql/apollo-client/commit/7c2bc08b2ab46b9aa181d187a27aec2ad7129599) Thanks [@benjamn](https://togithub.com/benjamn)! - Prevent `QueryInfo#markResult` mutation of `result.data` and return cache data consistently whether complete or incomplete. - [#11442](https://togithub.com/apollographql/apollo-client/pull/11442) [`4b6f2bc`](https://togithub.com/apollographql/apollo-client/commit/4b6f2bccf3ba94643b38689b32edd2839e47aec1) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Remove the need to call `retain` from `useLoadableQuery` since `useReadQuery` will now retain the query. This means that a `queryRef` that is not consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will now be auto diposed for you. Thanks to [#11412](https://togithub.com/apollographql/apollo-client/pull/11412), disposed query refs will be automatically resubscribed to the query when consumed by `useReadQuery` after it has been disposed. - [#11438](https://togithub.com/apollographql/apollo-client/pull/11438) [`6d46ab9`](https://togithub.com/apollographql/apollo-client/commit/6d46ab930a5e9bd5cae153d3b75b8966784fcd4e) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Remove the need to call `retain` from `useBackgroundQuery` since `useReadQuery` will now retain the query. This means that a `queryRef` that is not consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will now be auto diposed for you. Thanks to [#11412](https://togithub.com/apollographql/apollo-client/pull/11412), disposed query refs will be automatically resubscribed to the query when consumed by `useReadQuery` after it has been disposed. - [#11175](https://togithub.com/apollographql/apollo-client/pull/11175) [`d6d1491`](https://togithub.com/apollographql/apollo-client/commit/d6d14911c40782cd6d69167b6f6169c890091ccb) Thanks [@phryneas](https://togithub.com/phryneas)! - To work around issues in React Server Components, especially with bundling for the Next.js "edge" runtime we now use an external package to wrap `react` imports instead of importing React directly. - [#11495](https://togithub.com/apollographql/apollo-client/pull/11495) [`1190aa5`](https://togithub.com/apollographql/apollo-client/commit/1190aa59a106217f7192c1f81099adfa5e4365c1) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Increase the default memory limits for `executeSelectionSet` and `executeSelectionSetArray`.More Minor Changes
- [#11275](https://togithub.com/apollographql/apollo-client/pull/11275) [`3862f9b`](https://togithub.com/apollographql/apollo-client/commit/3862f9ba9086394c4cf4c2ecd99e8e0f6cf44885) Thanks [@phryneas](https://togithub.com/phryneas)! - Add a `defaultContext` option and property on `ApolloClient`, e.g. for keeping track of changing auth tokens or dependency injection. This can be used e.g. in authentication scenarios, where a new token might be generated outside of the link chain and should passed into the link chain. ```js import { ApolloClient, createHttpLink, InMemoryCache } from "@apollo/client"; import { setContext } from "@apollo/client/link/context"; const httpLink = createHttpLink({ uri: "/graphql", }); const authLink = setContext((_, { headers, token }) => { return { headers: { ...headers, authorization: token ? `Bearer ${token}` : "", }, }; }); const client = new ApolloClient({ link: authLink.concat(httpLink), cache: new InMemoryCache(), }); // somewhere else in your application function onNewToken(newToken) { // token can now be changed for future requests without need for a global // variable, scoped ref or recreating the client client.defaultContext.token = newToken; } ``` - [#11443](https://togithub.com/apollographql/apollo-client/pull/11443) [`ff5a332`](https://togithub.com/apollographql/apollo-client/commit/ff5a332ff8b190c418df25371e36719d70061ebe) Thanks [@phryneas](https://togithub.com/phryneas)! - Adds a deprecation warning to the HOC and render prop APIs. The HOC and render prop APIs have already been deprecated since 2020, but we previously didn't have a `@deprecated` tag in the DocBlocks. - [#11385](https://togithub.com/apollographql/apollo-client/pull/11385) [`d9ca4f0`](https://togithub.com/apollographql/apollo-client/commit/d9ca4f0821c66ae4f03cf35a7ac93fe604cc6de3) Thanks [@phryneas](https://togithub.com/phryneas)! - ensure `defaultContext` is also used for mutations and subscriptions - [#11503](https://togithub.com/apollographql/apollo-client/pull/11503) [`67f62e3`](https://togithub.com/apollographql/apollo-client/commit/67f62e359bc471787d066319326e5582b4a635c8) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Release changes from [`v3.8.10`](https://togithub.com/apollographql/apollo-client/releases/tag/v3.8.10) - [#11078](https://togithub.com/apollographql/apollo-client/pull/11078) [`14edebe`](https://togithub.com/apollographql/apollo-client/commit/14edebebefb7634c32b921d02c1c85c6c8737989) Thanks [@phryneas](https://togithub.com/phryneas)! - ObservableQuery: prevent reporting results of previous queries if the variables changed since - [#11439](https://togithub.com/apollographql/apollo-client/pull/11439) [`33454f0`](https://togithub.com/apollographql/apollo-client/commit/33454f0a40a05ea2b00633bda20a84d0ec3a4f4d) Thanks [@jerelmiller](https://togithub.com/jerelmiller)! - Address bundling issue introduced in [#11412](https://togithub.com/apollographql/apollo-client/pull/11412) where the `react/cache` internals ended up duplicated in the bundle. This was due to the fact that we had a `react/hooks` entrypoint that imported these files along with the newly introduced `createQueryPreloader` function, which lived outside of the `react/hooks` folder. - [#11371](https://togithub.com/apollographql/apollo-client/pull/11371) [`ebd8fe2`](https://togithub.com/apollographql/apollo-client/commit/ebd8fe2c1b8b50bfeb2da20aeca5671300fb5564) Thanks [@phryneas](https://togithub.com/phryneas)! - Clarify types of `EntityStore.makeCacheKey`.Patch Changes
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.