SkillAgentSearch skills...

Deepcopy.js

deep copy data

Install / Use

/learn @sasaplus1/Deepcopy.js
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

deepcopy.js

test npm version Try deepcopy on RunKit renovate

deep copy data

[!CAUTION] This package is no longer maintained. For most deep cloning needs, consider using the native structuredClone() function, which is now available in modern JavaScript environments.

Installation

npm

$ npm install deepcopy

Usage

node.js

JavaScript

const deepcopy = require('deepcopy');

TypeScript

import * as deepcopy from 'deepcopy';

browser

<script src="deepcopy.min.js"></script>

Example

basic usage:

const src = {
  desserts: [
    { name: 'cake'      },
    { name: 'ice cream' },
    { name: 'pudding'   }
  ]
};

const dist = deepcopy(src);

src.desserts = null;

console.log(src);   // { desserts: null }
console.log(dist);  // { desserts: [ { name: 'cake' }, { name: 'ice cream' }, { name: 'pudding' } ] }

customize deepcopy:

function MyClass(id) {
  this._id = id;
}

const src = {
  myClasses: [
    new MyClass(1),
    new MyClass(2),
    new MyClass(3)
  ]
};

const dest = deepcopy(base, {
  customizer(value) {
    if (target.constructor === MyClass) {
      return new MyClass(target._id);
    }
  }
});

src.myClasses = null;

console.log(src);   // { myClasses: null }
console.log(dest);  // { myClasses: [ MyClass { _id: 1 }, MyClass { _id: 2 }, MyClass { _id: 3 } ] }

Functions

deepcopy(value[, options])

  • value
    • *
      • target value
  • options
    • Object|Function
      • Object - pass options
      • Function - use as customize function
  • return
    • * - copied value

Supported types and copy operation

|type |operation | | |:-----------------|:-----------|:-------------------------| |ArrayBuffer |deep copy | | |Boolean |deep copy | | |Buffer |deep copy |node.js only | |DataView |deep copy | | |Date |deep copy | | |Number |deep copy | | |RegExp |deep copy | | |String |deep copy | | |Float32Array |deep copy | | |Float64Array |deep copy | | |Int16Array |deep copy | | |Int32Array |deep copy | | |Int8Array |deep copy | | |Uint16Array |deep copy | | |Uint32Array |deep copy | | |Uint8Array |deep copy | | |Uint8ClampedArray |deep copy | | |boolean |deep copy | | |null |deep copy | | |number |deep copy | | |string |deep copy | | |symbol |deep copy | | |undefined |deep copy | | |Arguments |deep copy |recursively, copy as Array| |Array |deep copy |recursively | |Map |deep copy |recursively | |Object |deep copy |recursively | |Set |deep copy |recursively | |Array Iterator |shallow copy| | |Map Iterator |shallow copy| | |Promise |shallow copy| | |Set Iterator |shallow copy| | |String Iterator |shallow copy| | |function |shallow copy| | |global |shallow copy|window, global, self, etc.| |WeakMap |shallow copy| | |WeakSet |shallow copy| |

Contributors

License

The MIT license.

Related Skills

View on GitHub
GitHub Stars129
CategoryDevelopment
Updated6mo ago
Forks19

Languages

TypeScript

Security Score

87/100

Audited on Oct 1, 2025

No findings