1.0.8 • Published 2 years ago
deeply-clone v1.0.8
Deeply-Clone
[
](https://img.shields.io/github/license/ichernetskii/deeply-clone)
Deep fast clone JavaScript objects with circular references handling and TypeScript support
Installation
# Install with npm
npm install deeply-clone# Install with yarn
yarn add deeply-cloneUsage
Once the package is installed, you can import the library using import or require approach:
import { deeplyClone } from "deeply-clone";or
const deeplyClone = require("deeply-clone");Features
- Clones deeply objects
 - Supports Object, Array, Map or Set cloning
 - Objects can have any circular references
 - Fast algorithm with caching
 - Strongly typed merged result with TypeScript
 - No dependencies
 - Small size
 - Works in browser and Node.js
 
Examples
Objects
const book = {
    title: "Harry Potter",
    price: {
        value: 69,
        currency: "USD"
    }
};
const bookCopy = deeplyClone(book);
console.log(bookCopy === book); // false
//  const bookCopy = {
//    title: "Harry Potter",
//    price: {
//      value: 69,
//      currency: "USD"
//    }
//  };Circular references
const book = {
    title: "Harry Potter",
    price: 49,
    author: {
        name: "Joanne Rowling",
        books: [] // → [book]
    }
};
book.author.books.push(book); // add circular reference
const bookCopy = deeplyClone(book);
console.log(bookCopy === book); // false
console.log(bookCopy.author.books[0] === bookCopy); // true
//  const bookCopy = {
//    title: "Harry Potter",
//    price: 49,
//    author: {
//      name: "Joanne Rowling",
//      books: [bookCopy] // circular reference → [bookCopy]
//    }
//  };