UNPKG

@apollo/client

Version:

A fully-featured caching GraphQL client.

24 lines (23 loc) 1.24 kB
import { mergeDeepArray } from "./mergeDeepArray.js"; // These mergeDeep and mergeDeepArray utilities merge any number of objects // together, sharing as much memory as possible with the source objects, while // remaining careful to avoid modifying any source objects. // Logically, the return type of mergeDeep should be the intersection of // all the argument types. The binary call signature is by far the most // common, but we support 0- through 5-ary as well. After that, the // resulting type is just the inferred array element type. Note to nerds: // there is a more clever way of doing this that converts the tuple type // first to a union type (easy enough: T[number]) and then converts the // union to an intersection type using distributive conditional type // inference, but that approach has several fatal flaws (boolean becomes // true & false, and the inferred type ends up as unknown in many cases), // in addition to being nearly impossible to explain/understand. /** * @internal * * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time. */ export function mergeDeep(...sources) { return mergeDeepArray(sources); } //# sourceMappingURL=mergeDeep.js.map