Skip to content

Releases: apollographql/apollo-client

v3.11.4

07 Aug 21:15
c6e8182
Compare
Choose a tag to compare

Patch Changes

  • #11994 41b17e5 Thanks @jerelmiller! - Update the Modifier function type to allow cache.modify to return deeply partial data.

  • #11989 e609156 Thanks @phryneas! - Fix a potential crash when calling clearStore while a query was running.

    Previously, calling client.clearStore() while a query was running had one of these results:

    • useQuery would stay in a loading: true state.
    • useLazyQuery would stay in a loading: true state, but also crash with a "Cannot read property 'data' of undefined" error.

    Now, in both cases, the hook will enter an error state with a networkError, and the promise returned by the useLazyQuery execute function will return a result in an error state.

  • #11994 41b17e5 Thanks @jerelmiller! - Prevent accidental distribution on cache.modify field modifiers when a field is a union type array.

v3.11.3

05 Aug 17:51
8aa627f
Compare
Choose a tag to compare

Patch Changes

  • #11984 5db1659 Thanks @jerelmiller! - Fix an issue where multiple fetches with results that returned errors would sometimes set the data property with an errorPolicy of none.

  • #11974 c95848e Thanks @jerelmiller! - Fix an issue where fetchMore would write its result data to the cache when using it with a no-cache fetch policy.

  • #11974 c95848e Thanks @jerelmiller! - Fix an issue where executing fetchMore with a no-cache fetch policy could sometimes result in multiple network requests.

  • #11974 c95848e Thanks @jerelmiller! -

    Potentially disruptive change

    When calling fetchMore with a query that has a no-cache fetch policy, fetchMore will now throw if an updateQuery function is not provided. This provides a mechanism to merge the results from the fetchMore call with the query's previous result.

v3.11.2

31 Jul 17:04
076bb63
Compare
Choose a tag to compare

Patch Changes

v3.11.1

23 Jul 15:40
abcbe8b
Compare
Choose a tag to compare

Patch Changes

  • #11969 061cab6 Thanks @jerelmiller! - Remove check for window.__APOLLO_CLIENT__ when determining whether to connect to Apollo Client Devtools when connectToDevtools or devtools.enabled is not specified. This now simply checks to see if the application is in development mode.

  • #11971 ecf77f6 Thanks @jerelmiller! - Prevent the setTimeout for suggesting devtools from running in non-browser environments.

v3.11.0

22 Jul 23:41
fa3487d
Compare
Choose a tag to compare

Potentially Breaking Fixes

  • #11789 5793301 Thanks @phryneas! - Changes usages of the GraphQLError type to GraphQLFormattedError.

    This was a type bug - these errors were never GraphQLError instances
    to begin with, and the GraphQLError class has additional properties that can
    never be correctly rehydrated from a GraphQL result.
    The correct type to use here is GraphQLFormattedError.

    Similarly, please ensure to use the type FormattedExecutionResult
    instead of ExecutionResult - the non-"Formatted" versions of these types
    are for use on the server only, but don't get transported over the network.

  • #11626 228429a Thanks @phryneas! - Call nextFetchPolicy with "variables-changed" even if there is a fetchPolicy specified.

    Previously this would only be called when the current fetchPolicy was equal to the fetchPolicy option or the option was not specified. If you use nextFetchPolicy as a function, expect to see this function called more often.

    Due to this bug, this also meant that the fetchPolicy might be reset to the initial fetchPolicy, even when you specified a nextFetchPolicy function. If you previously relied on this behavior, you will need to update your nextFetchPolicy callback function to implement this resetting behavior.

    As an example, if your code looked like the following:

    useQuery(QUERY, {
      nextFetchPolicy(currentFetchPolicy, info) {
        // your logic here
      }
    );

    Update your function to the following to reimplement the resetting behavior:

    useQuery(QUERY, {
      nextFetchPolicy(currentFetchPolicy, info) {
        if (info.reason === 'variables-changed') {
          return info.initialFetchPolicy;
        }
        // your logic here
      }
    );

Minor Changes

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useQueryRefHandlers.

  • #11854 3812800 Thanks @jcostello-atlassian! - Support extensions in useSubscription

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useLoadableQuery.

  • #11863 98e44f7 Thanks @phryneas! - Reimplement useSubscription to fix rules of React violations.

  • #11869 a69327c Thanks @phryneas! - Rewrite big parts of useQuery and useLazyQuery to be more compliant with the Rules of React and React Compiler

  • #11936 1b23337 Thanks @jerelmiller! - Add the ability to specify a name for the client instance for use with Apollo Client Devtools. This is useful when instantiating multiple clients to identify the client instance more easily. This deprecates the connectToDevtools option in favor of a new devtools configuration.

    new ApolloClient({
      devtools: {
        enabled: true,
        name: "Test Client",
      },
    });

    This option is backwards-compatible with connectToDevtools and will be used in the absense of a devtools option.

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useBackgroundQuery.

  • #11930 a768575 Thanks @jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending @apollo/graphql-testing-library.

Patch Changes

v3.11.0-rc.2

15 Jul 20:04
4e2a0bb
Compare
Choose a tag to compare
v3.11.0-rc.2 Pre-release
Pre-release

Patch Changes

  • #11951 0de03af Thanks @phryneas! - add React 19 RC to peerDependencies

  • #11937 78332be Thanks @phryneas! - createSchemaFetch: simulate serialized errors instead of an ApolloError instance

  • #11944 8f3d7eb Thanks @sneyderdev! - Allow IgnoreModifier to be returned from a optimisticResponse function when inferring from a TypedDocumentNode when used with a generic argument.

  • #11954 4a6e86a Thanks @phryneas! - Document (and deprecate) the previously undocumented errors property on the useQuery QueryResult type.

v3.11.0-rc.1

10 Jul 22:34
a3bbabe
Compare
Choose a tag to compare
v3.11.0-rc.1 Pre-release
Pre-release

Patch Changes

v3.11.0-rc.0

09 Jul 20:12
d9f9d15
Compare
Choose a tag to compare
v3.11.0-rc.0 Pre-release
Pre-release

Minor Changes

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useQueryRefHandlers.

  • #11854 3812800 Thanks @jcostello-atlassian! - Support extensions in useSubscription

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useLoadableQuery.

  • #11863 98e44f7 Thanks @phryneas! - Reimplement useSubscription to fix rules of React violations.

  • #11869 a69327c Thanks @phryneas! - Rewrite big parts of useQuery and useLazyQuery to be more compliant with the Rules of React and React Compiler

  • #11936 1b23337 Thanks @jerelmiller! - Add the ability to specify a name for the client instance for use with Apollo Client Devtools. This is useful when instantiating multiple clients to identify the client instance more easily. This deprecates the connectToDevtools option in favor of a new devtools configuration.

    new ApolloClient({
      devtools: {
        enabled: true,
        name: "Test Client",
      },
    });

    This option is backwards-compatible with connectToDevtools and will be used in the absense of a devtools option.

  • #11923 d88c7f8 Thanks @jerelmiller! - Add support for subscribeToMore function to useBackgroundQuery.

  • #11789 5793301 Thanks @phryneas! - Changes usages of the GraphQLError type to GraphQLFormattedError.

    This was a type bug - these errors were never GraphQLError instances
    to begin with, and the GraphQLError class has additional properties that can
    never be correctly rehydrated from a GraphQL result.
    The correct type to use here is GraphQLFormattedError.

    Similarly, please ensure to use the type FormattedExecutionResult
    instead of ExecutionResult - the non-"Formatted" versions of these types
    are for use on the server only, but don't get transported over the network.

  • #11930 a768575 Thanks @jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending @apollo/graphql-testing-library.

Patch Changes

v3.10.8

27 Jun 20:01
d914d68
Compare
Choose a tag to compare

Patch Changes

  • #11911 1f0460a Thanks @jerelmiller! - Allow undefined to be returned from a cache.modify modifier function when a generic type argument is used.

v3.10.7

26 Jun 16:54
7111de2
Compare
Choose a tag to compare

Patch Changes