SkillAgentSearch skills...

Deep.clone

Deeply clone any objects with nested objects.

Install / Use

/learn @motss/Deep.clone
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

🚨 No longer maintained. Moved to @reallyland/node_mod. 🚨

<div align="center" style="text-align: center;"> <h1 style="border-bottom: none;">deep.clone</h1> <p>Simple and fast deep cloning</p> </div> <hr />

Follow me

Version Node version MIT License

Downloads Total downloads Packagephobia Bundlephobia

CircleCI Dependency Status codecov Coverage Status

codebeat badge Codacy Badge Code of Conduct

A simple NPM package to do simple and fast deep cloning with JSON.parse + JSON.stringify.

Table of contents <!-- omit in toc -->

Pre-requisite

Install

# Install via NPM
$ npm install --save deep.clone

Usage

TypeScript or ES Modules

/** Import project dependencies */
import deepClone from 'deep.clone';

/** Setting up */
const simpleObject = {
  a: {
    b: { c: [1, 2,3] },
    e: [ { f: null } ],
  },
  d: 'deep',
};
const complexObject = {
  a: () => {},
  b: /test/gi,
  c: [1, 2],
  d: new Date(),
  e: { f: 111 },
};

(async () => {
  const clonedSimpleObject = await deepClone(simpleObject);
  const clonedComplexObject = await deepClone(compleObject, {
    absolute: true,
  });
})();

Node.js

/** Import project dependencies */
const { deepClone } = require('deep.clone');

/** Setting up */
const simpleObject = {
  a: {
    b: { c: [1, 2,3] },
    e: [ { f: null } ],
  },
  d: 'deep',
};
const complexObject = {
  a: () => {},
  b: /test/gi,
  c: [1, 2],
  d: new Date(),
  e: { f: 111 },
};

(async () => {
  const clonedSimpleObject = await deepClone(simpleObject);
  const clonedComplexObject = await deepClone(compleObject, {
    absolute: true,
  });
})();

Browser

ES Modules

<script type="module">
  import { deepClone } from 'https://unpkg.com/deep.clone@latest/dist/deep.clone.js';

  deepClone({ ... }) /** Object truncated for brevity */
    .then(console.log);
    .then(console.error);
</script>

IIFE

<script src="https://unpkg.com/deep.clone@latest/dist/deep.clone.iife.js"></script>
<script>
  const { deepClone } = window.DeepClone;

  deepClone({ ... }) /** Object truncated for brevity */
    .then(console.log);
    .then(console.error);
</script>

deno

👉 Check out the deno module at deno_mod/deep_clone.

API Reference

deepClone<T>(target[, options])

  • target <T> Target to be cloned.
  • options <?Object> Optionally set absolute: true for deep cloning complex objects that are not possible with JSON.parse + JSON.stringify.
    • absolute <boolean> If true, deep clone complex objects.
  • returns: <Promise<T>> Promise which resolves with the deeply cloned target.

This method deeply clones a given target with JSON.parse + JSON.stringify asynchronously by default. Set absolute: true for deep cloning complex objects that contain Date, RegExp, Function, etc.

deepCloneSync(target[, options])

This methods works the same as deepClone(target[, options]) except that this is the synchronous version.

License

MIT License © Rong Sen Ng

<!-- References --> <!-- MDN --> <!-- Badges --> <!-- Links -->

Related Skills

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated3y ago
Forks1

Languages

TypeScript

Security Score

75/100

Audited on Jan 28, 2023

No findings