dcp
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i dcp

Weekly Downloads

26

Version

0.3.0

License

MIT

Unpacked Size

18.1 kB

Total Files

11

Last publish

Collaborators

  • suguru03