UNPKG

@augment-vir/common

Version:

A collection of augments, helpers types, functions, and classes for any JavaScript environment.

35 lines (34 loc) 946 B
import { type Jsonify, type Writable } from 'type-fest'; /** * Deeply copy an object through JSON. This is the fastest deep copy, but the input must already be * JSON serializable otherwise the copy will not match the original. * * @category JSON : Common * @category Copy * @category Package : @augment-vir/common * @example * * ```ts * import {copyThroughJson} from '@augment-vir/common'; * * // `copy1` will be `{a: 'a', b: 'b'}` * const copy1 = copyThroughJson({a: 'a', b: 'b'}); * // `copy2` will be `{map: {}, b: 'b'}` * const copy2 = copyThroughJson({ * map: new Map([ * [ * 'q', * 'r', * ], * [ * 's', * 't', * ], * ]), * b: 'b', * }); * ``` * * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function copyThroughJson<const T>(input: T): Writable<Jsonify<T>>;