objects.d.ts
 1  import { Obj } from './types';
 2  /**
 3   * Return a new object by adding missing keys into another object
 4   */
 5  export declare function applyDefaults(hash: any, defaults: any): any;
 6  /**
 7   * Return whether the given parameter is an empty object or empty list.
 8   */
 9  export declare function isEmpty(x: any): boolean;
10  /**
11   * Deep clone a tree of objects, lists or scalars
12   *
13   * Does not support cycles.
14   */
15  export declare function deepClone(x: any): any;
16  /**
17   * Map over an object, treating it as a dictionary
18   */
19  export declare function mapObject<T, U>(x: Obj<T>, fn: (key: string, value: T) => U): U[];
20  /**
21   * Construct an object from a list of (k, v) pairs
22   */
23  export declare function makeObject<T>(pairs: Array<[string, T]>): Obj<T>;
24  /**
25   * Deep get a value from a tree of nested objects
26   *
27   * Returns undefined if any part of the path was unset or
28   * not an object.
29   */
30  export declare function deepGet(x: any, path: string[]): any;
31  /**
32   * Deep set a value in a tree of nested objects
33   *
34   * Throws an error if any part of the path is not an object.
35   */
36  export declare function deepSet(x: any, path: string[], value: any): void;
37  /**
38   * Recursively merge objects together
39   *
40   * The leftmost object is mutated and returned. Arrays are not merged
41   * but overwritten just like scalars.
42   *
43   * If an object is merged into a non-object, the non-object is lost.
44   */
45  export declare function deepMerge(...objects: Array<Obj<any> | undefined>): Obj<any>;