@augment-vir/common
Version:
A collection of augments, helpers types, functions, and classes for any JavaScript environment.
35 lines (34 loc) • 946 B
TypeScript
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>>;