apollographql / apollo-client

:rocket:  A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
https://apollographql.com/client
MIT License
19.38k stars 2.66k forks source link

Fix `fetchMore` for queries with `no-cache` fetch policies #11974

Closed jerelmiller closed 3 months ago

jerelmiller commented 3 months ago

Fixes #11965

This fixes several issues when using fetchMore with no-cache queries.

Important

This PR updates fetchMore to force the user to provide an updateQuery function when using a query with a no-cache fetch policy. Without this, there is no way for the user to determine how to merge the result with the current query data since other mechanisms rely on the cache to perform this functionality. Calling fetchMore without an updateQuery function will now throw.

changeset-bot[bot] commented 3 months ago

🦋 Changeset detected

Latest commit: aca0f102d71eb785eb2ceab0cc2f4430c51614bc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package | Name | Type | | -------------- | ----- | | @apollo/client | Patch |

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

github-actions[bot] commented 3 months ago

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 39.3 KB (+0.19% 🔺)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 47.97 KB (+0.18% 🔺)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 45.55 KB (+0.22% 🔺)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 34.38 KB (+0.19% 🔺)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 32.27 KB (+0.21% 🔺)
import { ApolloProvider } from "dist/react/index.js" 1.26 KB (0%)
import { ApolloProvider } from "dist/react/index.js" (production) 1.24 KB (0%)
import { useQuery } from "dist/react/index.js" 5.21 KB (-0.04% 🔽)
import { useQuery } from "dist/react/index.js" (production) 4.3 KB (0%)
import { useLazyQuery } from "dist/react/index.js" 5.69 KB (-0.02% 🔽)
import { useLazyQuery } from "dist/react/index.js" (production) 4.77 KB (0%)
import { useMutation } from "dist/react/index.js" 3.62 KB (-0.03% 🔽)
import { useMutation } from "dist/react/index.js" (production) 2.84 KB (-0.04% 🔽)
import { useSubscription } from "dist/react/index.js" 4.41 KB (-0.03% 🔽)
import { useSubscription } from "dist/react/index.js" (production) 3.46 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 5.49 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.15 KB (-0.03% 🔽)
import { useBackgroundQuery } from "dist/react/index.js" 4.99 KB (-0.02% 🔽)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.64 KB (-0.03% 🔽)
import { useLoadableQuery } from "dist/react/index.js" 5.07 KB (-0.02% 🔽)
import { useLoadableQuery } from "dist/react/index.js" (production) 3.72 KB (-0.06% 🔽)
import { useReadQuery } from "dist/react/index.js" 3.39 KB (-0.06% 🔽)
import { useReadQuery } from "dist/react/index.js" (production) 3.33 KB (-0.03% 🔽)
import { useFragment } from "dist/react/index.js" 2.32 KB (-0.05% 🔽)
import { useFragment } from "dist/react/index.js" (production) 2.27 KB (-0.05% 🔽)
netlify[bot] commented 3 months ago

Deploy Preview for apollo-client-docs ready!

Name Link
Latest commit aca0f102d71eb785eb2ceab0cc2f4430c51614bc
Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/66ac0d8aeb80dd0008dcdb40
Deploy Preview https://deploy-preview-11974--apollo-client-docs.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

jerelmiller commented 3 months ago

Made one more tweak to the docs. I'll go ahead and merge this now to get the fix in place. I can make any additional docs tweaks in a separate PR if I get more feedback here.