0.3.0 • Published 5 years ago

dcp v0.3.0

Weekly downloads
57
License
MIT
Repository
-
Last release
5 years ago

dcp

npm

This module supports making copy / clone deeply and faster.

Benchmark

  • Node.js: v12.7.0
  • benchmark.js: v2.1.0
yarn benchmark

[1] "dcp" 0.0665μs[1.00][1.00]
[2] "JSON" 3.73μs[0.0178][56.1]
[3] "lodash" 3.76μs[0.0177][56.6]

Usage

Runtime parsing

If the reference of the base object is NOT changed, you can use it without defining a key.

const obj = {
  a: 10,
  c: [1, 2],
  d: {}
};

// only first time, it will be parsed
const newObj = dcp.clone(obj);
/*
 * { a: 10,
 *   b: '',
 *   c: [1, 2],
 *   d: { d1: false } }
 */

Runtime parsing with a key

If the reference is changed but the format is the same, you need to use it with a key.

// only first time, it will be parsed
const newObj = dcp.clone('key1', obj);
/*
 * { a: 10,
 *   b: '',
 *   c: [1, 2],
 *   d: { d1: false } }
 */

// get the default values
const newObj2 = dcp.clone('key1');
/*
 * { a: 0,
 *   b: '',
 *   c: [0, 0],
 *   d: { d1: false } }
 */

Pre-defined

It is the fastest way, but the difference is only the first clone.

const structure = {
  a: 1,
  b: 'default',
  c: [undefined, undefined],
  d: { d1: true }
};
const key = 'test';
dcp.define(key, structure);
const newObj = dcp.clone(key, obj);

APIs

define

arguments: (key: any, structure: any) arguments: (structure: any)

If it is called, functions which have the structure will be made.

clone

arguments: (key: any, structure: any) arguments: (structure: any)

The deep clone will be made by defined structure. If the key isn't defined, define will be called and then the deep clone function will be called.

0.3.0

5 years ago

0.2.0

5 years ago

0.1.4

6 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.1

8 years ago