Minor Changes
- Improve referential equality of deeply queried objects from the normalised cache for queries. Each query operation will now reuse the last known result and only incrementally change references as necessary, scanning over the previous result to identify whether anything has changed.
This should help improve the performance of processing updates in UI frameworks (e.g. in React withuseMemo
orReact.memo
). (See #1859) - Add experimental support for
@defer
and@stream
responses for GraphQL. This implements the "GraphQL Defer and Stream Directives" and "Incremental Delivery over HTTP" specifications. If a GraphQL API supportsmultipart/mixed
responses for deferred and streamed delivery of GraphQL results,@urql/core
(and all its derived fetch implementations) will attempt to stream results. This is only supported on browsers supporting streamed fetch responses, which excludes IE11.
The implementation of streamed multipart responses is derived frommeros
by@maraisr
, and is subject to change if the RFCs end up changing, by @kitten (See #1854)
Patch Changes
- ⚠️ Fix missing values cascading into lists causing a
null
item without the query being marked as stale and fetched from the API. This would happen in schema awareness when a required field, which isn't cached, cascades into a nullable list, by @kitten (See #1869) - Updated dependencies (See #1854)
- @urql/core@2.3.0