Deep fast clone JavaScript objects with circular references handling and TypeScript support
# Install with npm
npm install deeply-clone
# Install with yarn
yarn add deeply-clone
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");
- 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
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"
// }
// };
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]
// }
// };