-
#12884 d329790 Thanks @phryneas! - Ensure that PreloadedQueryRef instances are unsubscribed when garbage collected
-
#13086 1a1d408 Thanks @phryneas! - Change the returned value from null to {} when all fields in a query were skipped.
This also fixes a bug where useSuspenseQuery would suspend indefinitely when all fields were skipped.
-
#13010 7627000 Thanks @jerelmiller! - Fix an issue where errors parsed from incremental chunks in ErrorLink might throw when using the GraphQL17Alpha9Handler.
-
#12927 45ebb52 Thanks @jerelmiller! - Deduplicate watches created by useFragment, client.watchFragment, and cache.watchFragment that contain the same fragment, variables, and identifier. This should improve performance in situations where a useFragment or a client.watchFragment is used to watch the same object in multiple places of an application.
-
#12927 259ae9b Thanks @jerelmiller! - Allow FragmentType not only to be called as FragmentType<TData>, but also as FragmentType<TypedDocumentNode>.
-
#12925 5851800 Thanks @jerelmiller! - Fix an issue where calling fetchMore with @defer or @stream would not rerender incremental results as they were streamed.
-
#12927 9e55188 Thanks @jerelmiller! - Truncate @stream arrays only on last chunk by default.
-
#13083 f3c2be1 Thanks @phryneas! - Expose the ExtensionsWithStreamInfo type for extensions in Cache.writeQuery, Cache.write and Cache.update so other cache implementations also can correctly access them.
-
#12923 94ea3e3 Thanks @jerelmiller! - Improve the cache data loss warning message when existing or incoming is an array.
-
#12927 4631175 Thanks @jerelmiller! - Ignore top-level data values on subsequent chunks in incremental responses.
-
#12927 2be8de2 Thanks @jerelmiller! - Create mechanism to add experimental features to Apollo Client
-
#12927 96b531f Thanks @jerelmiller! - Ensure LocalState doesn't try to read from the cache when using a no-cache fetch policy.
-
#12927 bb8ed7b Thanks @jerelmiller! - Ensure an error is thrown when @stream is detected and an incrementalDelivery handler is not configured.
-
#13053 23ca0ba Thanks @phryneas! - Use memoized observable mapping when using watchFragment, useFragment or useSuspenseFragment.
-
#12927 44706a2 Thanks @jerelmiller! - Add helper type QueryRef.ForQuery<TypedDocumentNode>
-
#13082 c257418 Thanks @phryneas! - Pass streamInfo through result extensions as a WeakRef.
-
#12927 4631175 Thanks @jerelmiller! - Fix the Defer20220824Handler.SubsequentResult type to match the FormattedSubsequentIncrementalExecutionResult type in graphql@17.0.0-alpha.2.
-
#12927 96b531f Thanks @jerelmiller! - Warn when using a no-cache fetch policy without a local resolver defined. no-cache queries do not read or write to the cache which meant no-cache queries are silently incomplete when the @client field value was handled by a cache read function.
-
#12927 5776ea0 Thanks @jerelmiller! - Update the accept header used with the GraphQL17Alpha9Handler to multipart/mixed;incrementalSpec=v0.2 to ensure the newest incremental delivery format is requested.
-
#12927 45ebb52 Thanks @jerelmiller! - DeepPartial<Array<TData>> now returns Array<DeepPartial<TData>> instead of Array<DeepPartial<TData | undefined>>.
-
#13071 99ffe9a Thanks @phryneas! - prerenderStatic: Expose return value of renderFunction to userland, fix aborted property.
This enables usage of resumeAndPrerender with React 19.2.
-
#13026 05eee67 Thanks @jerelmiller! - Reduce the number of observables created by watchFragment by reusing existing observables as much as possible. This should improve performance when watching the same item in the cache multiple times after a cache update occurs.
-
#13010 7627000 Thanks @jerelmiller! - Handle @stream payloads that send multiple items in the same chunk when using the Defer20220824Handler.
-
#13010 7627000 Thanks @jerelmiller! - Handle an edge case with the Defer20220824Handler where an error for a @stream item that bubbles to the @stream boundary (such as an item returning null for a non-null array item) would write items from future chunks to the wrong array index. In these cases, the @stream field is no longer processed and future updates to the field are ignored. This prevents runtime errors that TypeScript would otherwise not be able to catch.
-
#13081 1e06ad7 Thanks @jerelmiller! - Avoid calling merge functions more than once for the same incremental chunk.