Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update apollo graphql packages #159

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 22, 2020

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@apollo/client (source) 3.2.0 -> 3.10.6 age adoption passing confidence
apollo-server-express (source) 2.17.0 -> 2.26.2 age adoption passing confidence
graphql-tag 2.11.0 -> 2.12.6 age adoption passing confidence

Release Notes

apollographql/apollo-client (@​apollo/client)

v3.10.6

Compare Source

Patch Changes

v3.10.5

Compare Source

Patch Changes

v3.10.4

Compare Source

Patch Changes
  • #​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.

v3.10.3

Compare Source

Patch Changes

v3.10.2

Compare Source

Patch Changes

v3.10.1

Compare Source

Patch Changes

v3.10.0

Compare Source

Minor Changes
Patch Changes

v3.9.11

Compare Source

Patch Changes
  • #​11769 04132af Thanks @​jerelmiller! - Fix an issue where using skipToken or the skip option with useSuspenseQuery in React's strict mode would perform a network request.

v3.9.10

Compare Source

Patch Changes
  • #​11738 b1a5eb8 Thanks @​jerelmiller! - Fix an issue where rerendering useBackgroundQuery after the queryRef had been disposed, either via the auto dispose timeout or by unmounting useReadQuery, would cause the queryRef to be recreated potentially resulting in another network request.

  • #​11738 b1a5eb8 Thanks @​jerelmiller! - Allow queryRefs to be disposed of synchronously when a suspense hook unmounts. This prevents some situations where using a suspense hook with the same query/variables as the disposed queryRef accidentally used the disposed queryRef rather than creating a new instance.

  • #​11670 cc5c03b Thanks @​phryneas! - Bail out of executeSubSelectedArray calls if the array has 0 elements.

v3.9.9

Compare Source

Patch Changes
  • #​11696 466ef82 Thanks @​PiR1! - Immediately dispose of the queryRef if useBackgroundQuery unmounts before the auto dispose timeout kicks in.

v3.9.8

Compare Source

Patch Changes
  • #​11706 8619bc7 Thanks @​jerelmiller! - Fix issue in all suspense hooks where returning an empty array after calling fetchMore would rerender the component with an empty list.

  • #​11694 835d5f3 Thanks @​phryneas! - Expose setErrorMessageHandler from @apollo/client/dev entrypoint.

  • #​11689 cb8ffe5 Thanks @​jerelmiller! - Fix issue where passing a new from option to useFragment would first render with the previous value before rerendering with the correct value.

  • #​11713 642092c Thanks @​jerelmiller! - Fix issue where setting a default watchQuery option in the ApolloClient constructor could break startTransition when used with suspense hooks.

v3.9.7

Compare Source

Patch Changes

v3.9.6

Compare Source

Patch Changes

v3.9.5

Compare Source

Patch Changes

v3.9.4

Compare Source

Patch Changes

v3.9.3

Compare Source

Patch Changes

v3.9.2

Compare Source

Patch Changes

v3.9.1

Compare Source

Patch Changes

v3.9.0

Compare Source

Minor Changes
Memory optimizations
  • #​11424 62f3b6d Thanks @​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) 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 5cce53e Thanks @​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 d08970d Thanks @​benjamn! - Decouple canonicalStringify from ObjectCanon for better time and memory performance.

  • #​11356 cc4ac7e Thanks @​phryneas! - Fix a potential memory leak in FragmentRegistry.transform and FragmentRegistry.findFragmentSpreads that would hold on to passed-in DocumentNodes for too long.

  • #​11370 25e2cb4 Thanks @​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 139acd1 Thanks @​phryneas! - documentTransform: use optimism and WeakCache instead of directly storing data on the Trie

  • #​11358 7d939f8 Thanks @​phryneas! - Fixes a potential memory leak in Concast that might have been triggered when Concast was used outside of Apollo Client.

  • #​11344 bd26676 Thanks @​phryneas! - Add a resetCache method to DocumentTransform and hook InMemoryCache.addTypenameTransform up to InMemoryCache.gc

  • #​11367 30d17bf Thanks @​phryneas! - print: use WeakCache instead of WeakMap

  • #​11387 4dce867 Thanks @​phryneas! - QueryManager.transformCache: use WeakCache instead of WeakMap

  • #​11369 2a47164 Thanks @​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 221dd99 Thanks @​phryneas! - use WeakMap in React Native with Hermes

  • #​11355 7d8e184 Thanks @​phryneas! - InMemoryCache.gc now also triggers FragmentRegistry.resetCaches (if there is a FragmentRegistry)

  • #​11409 2e7203b Thanks @​phryneas! - Adds an experimental ApolloClient.getMemoryInternals helper

  • #​11343 776631d Thanks @​phryneas! - Add reset method to print, hook up to InMemoryCache.gc

Suspense-enabled data fetching on user interaction with useLoadableQuery
  • #​11300 a815873 Thanks @​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.

    function App() {
      const [loadQuery, queryRef, { refetch, fetchMore, reset }] =
        useLoadableQuery(query, options);
    
      return (
        <>
          <button onClick={() => loadQuery(variables)}>Load query</button>
          <Suspense fallback={<SuspenseFallback />}>
            {queryRef && <Child queryRef={queryRef} />}
          </Suspense>
        </>
      );
    }
    
    function Child({ queryRef }) {
      const { data } = useReadQuery(queryRef);
    
      // ...
    }
Begin preloading outside of React with createQueryPreloader
  • #​11412 58db5c3 Thanks @​jerelmiller! - Add the ability to start preloading a query outside React to begin fetching as early as possible. Call createQueryPreloader to create a preloadQuery function which can be called to start fetching a query. This returns a queryRef which is passed to useReadQuery and suspended until the query is done fetching.
Testing utility improvements
  • #​11178 4d64a6f Thanks @​sebakerckhof! - Support re-using of mocks in the MockedProvider

  • #​6701 8d2b4e1 Thanks @​prowe! - Ability to dynamically match mocks

    Adds support for a new property MockedResponse.variableMatcher: a predicate function that accepts a variables param. If true, the variables will be passed into the ResultFunction to help dynamically build a response.

New useQueryRefHandlers hook
  • #​11412 58db5c3 Thanks @​jerelmiller! - Create a new useQueryRefHandlers hook that returns refetch and fetchMore functions for a given queryRef. This is useful to get access to handlers for a queryRef that was created by createQueryPreloader or when the handlers for a queryRef produced by a different component are inaccessible.

    const MyComponent({ queryRef }) {
      const { refetch, fetchMore } = useQueryRefHandlers(queryRef);
    
      // ...
    }
Bail out of optimisticResponse updates with the IGNORE sentinel object
  • #​11410 07fcf6a Thanks @​sf-twingate! - Allow returning IGNORE sentinel object from optimisticResponse functions to bail-out from the optimistic update.

    Consider this example:

    const UPDATE_COMMENT = gql`
      mutation UpdateComment($commentId: ID!, $commentContent: String!) {
        updateComment(commentId: $commentId, content: $commentContent) {
          id
          __typename
          content
        }
      }
    `;
    
    function CommentPageWithData() {
      const [mutate] = useMutation(UPDATE_COMMENT);
      return (
        <Comment
          updateComment={({ commentId, commentContent }) =>
            mutate({
              variables: { commentId, commentContent },
              optimisticResponse: (vars, { IGNORE }) => {
                if (commentContent === "foo") {
                  // conditionally bail out of optimistic updates
                  return IGNORE;
                }
                return {
                  updateComment: {
                    id: commentId,
                    __typename: "Comment",
                    content: commentContent,
                  },
                };
              },
            })
          }
        />
      );
    }

    The IGNORE sentinel can be destructured from the second parameter in the callback function signature passed to optimisticResponse.

    const preloadQuery = createQueryPreloader(client);
    const queryRef = preloadQuery(QUERY, { variables, ...otherOptions });
    
    function App() {
      return {
        <Suspense fallback={<div>Loading</div>}>
          <MyQuery />
        </Suspense>
      }
    }
    
    function MyQuery() {
      const { data } = useReadQuery(queryRef);
    
      // do something with data
    }
Network adapters for multipart subscriptions usage with Relay and urql
  • #​11301 46ab032 Thanks @​alessbell! - Add multipart subscription network adapters for Relay and urql

    Relay
    import { createFetchMultipartSubscription } from "@&#8203;apollo/client/utilities/subscriptions/relay";
    import { Environment, Network, RecordSource, Store } from "relay-runtime";
    
    const fetchMultipartSubs = createFetchMultipartSubscription(
      "http://localhost:4000",
    );
    
    const network = Network.create(fetchQuery, fetchMultipartSubs);
    
    export const RelayEnvironment = new Environment({
      network,
      store: new Store(new RecordSource()),
    });
    Urql
    import { createFetchMultipartSubscription } from "@&#8203;apollo/client/utilities/subscriptions/urql";
    import { Client, fetchExchange, subscriptionExchange } from "@&#8203;urql/core";
    
    const url = "http://localhost:4000";
    
    const multipartSubscriptionForwarder = createFetchMultipartSubscription(url);
    
    const client = new Client({
      url,
      exchanges: [
        fetchExchange,
        subscriptionExchange({
          forwardSubscription: multipartSubscriptionForwarder,
        }),
      ],
    });
skipPollAttempt callback function
  • #​11397 3f7eecb Thanks @​aditya-kumawat! - Adds a new skipPollAttempt callback function that's called whenever a refetch attempt occurs while polling. If the function returns true, the refetch is skipped and not reattempted until the next poll interval. This will solve the frequent use-case of disabling polling when the window is inactive.

    useQuery(QUERY, {
      pollInterval: 1000,
      skipPollAttempt: () => document.hidden, // or !document.hasFocus()
    });
    // or define it globally
    new ApolloClient({
      defaultOptions: {
        watchQuery: {
          skipPollAttempt: () => document.hidden, // or !document.hasFocus()
        },
      },
    });
QueryManager.inFlightLinkObservables now uses a strong Trie as an internal data structure
  • #​11345 1759066 Thanks @​phryneas!

    Warning: requires @apollo/experimental-nextjs-app-support update

    If you are using @apollo/experimental-nextjs-app-support, you will need to update that to at least 0.5.2, as it accesses this internal data structure.

More Minor Changes

  • #​11202 7c2bc08 Thanks @​benjamn! - Prevent QueryInfo#markResult mutation of result.data and return cache data consistently whether complete or incomplete.

  • #​11442 4b6f2bc Thanks @​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, disposed query refs will be automatically resubscribed to the query when consumed by useReadQuery after it has been disposed.

  • #​11438 6d46ab9 Thanks @​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, disposed query refs will be automatically resubscribed to the query when consumed by useReadQuery after it has been disposed.

  • #​11175 d6d1491 Thanks @​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 1190aa5 Thanks @​jerelmiller! - Increase the default memory limits for executeSelectionSet and executeSelectionSetArray.

Patch Changes

  • #​11275 3862f9b Thanks @​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.

    import { ApolloClient, createHttpLink, InMemoryCache } from "@&#8203;apollo/client";
    import { setContext } from "@&#8203;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 ff5a332 Thanks @​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 d9ca4f0 Thanks @​phryneas! - ensure defaultContext is also used for mutations and subscriptions

  • #​11503 67f62e3 Thanks @​jerelmiller! - Release changes from v3.8.10

  • #​11078 14edebe Thanks @​phryneas! - ObservableQuery: prevent reporting results of previous queries if the variables changed since

  • #​11439 33454f0 Thanks @​jerelmiller! - Address bundling issue introduced in #​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 ebd8fe2 Thanks @​phryneas! - Clarify types of EntityStore.makeCacheKey.

v3.8.10

Compare Source

Patch Changes
  • #​11489 abfd02a Thanks @​gronxb! - Fix networkStatus with useSuspenseQuery not properly updating to ready state when using a cache-and-network fetch policy that returns data equal to what is already in the cache.

  • #​11483 6394dda Thanks @​pipopotamasu! - Fix cache override warning output

v3.8.9

Compare Source

Patch Changes

v3.8.8

Compare Source

Patch Changes

v3.8.7

Compare Source

Patch Changes
  • #​11297 c8c76a522 Thanks @​jerelmiller! - Add an explicit return type for the useReadQuery hook called UseReadQueryResult. Previously the return type of this hook was inferred from the return value.

  • #​11337 bb1da8349 Thanks @​phryneas! - #​11206 used the TypeScript syntax infer X extends Y that was introduced in TS 4.8.
    This caused some problems for some users, so we are rolling back to a more backwars-compatible (albeit slightly less performant) type.

v3.8.6

Compare Source

Patch Changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 24a2bf6 to 0672a47 Compare September 23, 2020 15:18
@renovate renovate bot changed the title fix(deps): update dependency apollo-server-express to v2.18.0 fix(deps): update apollo graphql packages Sep 23, 2020
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 0672a47 to 8340e70 Compare September 24, 2020 18:14
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from df50293 to df06bbf Compare October 5, 2020 19:19
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 470bb1a to a391878 Compare October 13, 2020 18:32
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from a391878 to 54656ea Compare October 19, 2020 18:32
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 54656ea to 8777011 Compare October 30, 2020 21:49
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 49e7096 to a1a62af Compare November 17, 2020 15:22
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 3 times, most recently from c5559df to b6140dd Compare December 1, 2020 19:00
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 95fc33e to 8f03209 Compare December 4, 2020 20:30
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 413c8b9 to 86496b7 Compare December 11, 2020 23:25
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 86496b7 to 7db1794 Compare December 22, 2020 23:11
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from f3a73fb to c49abd8 Compare January 14, 2021 20:52
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 4 times, most recently from effc349 to 70a2336 Compare February 12, 2021 03:57
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 70a2336 to c141969 Compare April 26, 2021 16:25
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 3faf90b to 9120430 Compare May 15, 2021 19:36
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from c23e647 to 51b8d6f Compare June 12, 2021 21:11
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 5c6a3cc to aa8f2e6 Compare August 10, 2023 23:05
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 3 times, most recently from 4942468 to 4885b88 Compare September 5, 2023 22:50
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 4885b88 to f08308a Compare September 19, 2023 17:14
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from f08308a to 2bd80f7 Compare October 5, 2023 19:55
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 2bd80f7 to 5397cf4 Compare October 16, 2023 19:17
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 5397cf4 to b1f3579 Compare November 2, 2023 17:26
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from b1f3579 to 7e3ee75 Compare November 29, 2023 19:07
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 7e3ee75 to 27f78ff Compare January 9, 2024 22:18
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 27f78ff to aad0044 Compare January 18, 2024 20:19
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 4 times, most recently from 69ac42c to dda3391 Compare February 6, 2024 21:21
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from dda3391 to 891f334 Compare February 7, 2024 18:45
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 891f334 to f76ac96 Compare February 15, 2024 19:40
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 71abf13 to 66fb95f Compare March 13, 2024 20:05
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from 87dd1df to e36cacd Compare March 22, 2024 21:17
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from e36cacd to 8e7a2a0 Compare April 1, 2024 19:21
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 8e7a2a0 to d935f9d Compare April 10, 2024 18:05
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from d935f9d to 3890fc3 Compare April 24, 2024 19:49
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch 2 times, most recently from a93dd0c to 2a7d1d8 Compare May 7, 2024 16:22
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 2a7d1d8 to 7f66e7e Compare May 15, 2024 02:46
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 7f66e7e to 7fa1c5d Compare June 12, 2024 19:26
@renovate renovate bot force-pushed the renovate/apollo-graphql-packages branch from 7fa1c5d to 91c57b9 Compare June 21, 2024 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants