deepcopy

WebJar for deepcopy

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

deepcopy
Last Version

Last Version

2.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

deepcopy
WebJar for deepcopy
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/sasaplus1/deepcopy.js

Download deepcopy

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/deepcopy/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>deepcopy</artifactId>
    <version>2.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/deepcopy/
implementation 'org.webjars.npm:deepcopy:2.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/deepcopy/
implementation ("org.webjars.npm:deepcopy:2.0.0")
'org.webjars.npm:deepcopy:jar:2.0.0'
<dependency org="org.webjars.npm" name="deepcopy" rev="2.0.0">
  <artifact name="deepcopy" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='deepcopy', version='2.0.0')
)
libraryDependencies += "org.webjars.npm" % "deepcopy" % "2.0.0"
[org.webjars.npm/deepcopy "2.0.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : type-detect jar [4.0.8,5)

Project Modules

There are no modules declared in this project.

deepcopy.js

test npm version Try deepcopy on RunKit renovate

deep copy data

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.

Versions

Version
2.0.0