@igor.dvlpr/node-clone-js
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

clone.js

🧬 A lightweight JavaScript utility allowing deep copy-by-value of nested objects, arrays and arrays of objects. 🪁

npm('clone.js')



💖 Support further development

I work hard for every project, including this one and your support means a lot to me!
Consider buying me a coffee. ☕
Thank you for supporting my efforts! 🙏😊


Donate to igorskyflyer

@igorskyflyer


🕵🏼 Usage

Install it by executing:

npm i "@igor.dvlpr/node-clone-js"

🤹🏼 API

Simple array copy

import { clone } from '@igor.dvlpr/node-clone-js'

const firstArray = [1, 2, 3]
const secondArray = clone(firstArray)

secondArray[0] = 5

console.log('firstArray => ', firstArray) // [1, 2, 3]
console.log('secondArray => ', secondArray) // [5, 2, 3]

Complex array (array of objects)

import { clone } from '@igor.dvlpr/node-clone-js'

const firstArray = [
  {
    id: '103',
    name: 'Peter',
  },
  {
    id: '214',
    name: 'Eve',
  },
]
const secondArray = clone(firstArray)

secondArray[0].name = 'John'

console.log('firstArray => ', firstArray)
console.log('secondArray => ', secondArray)

Simple object copy

import { clone } from '@igor.dvlpr/node-clone-js'

const firstStudent = {
  id: 103,
  name: 'Ben',
  classes: ['Maths', 'Science', 'English language'],
}

const secondStudent = clone(firstStudent)

secondStudent.classes[0] = 'Psychology'

console.log('firstStudent => ', firstStudent)
console.log('secondStudent => ', secondStudent)

Nested object copy

import { clone } from '@igor.dvlpr/node-clone-js'

const firstStudent = {
  id: 103,
  name: 'Ben',
  subjects: {
    groupDke: {
      science: 'B',
      maths: 'C',
    },
    groupOpe: {
      foo: 'bar',
    },
  },
}

const secondStudent = clone(firstStudent)

secondStudent.subjects.groupDke.maths = 'B'

console.log('firstStudent => ', firstStudent)
console.log('secondStudent => ', secondStudent)

Development

git clone https://github.com/igorskyflyer/npm-clone-js.git

cd npm-clone-js

npm install

Test

npm test

🪪 License

Licensed under the MIT license which is available here, MIT license.


🧬 Related

@igor.dvlpr/pathexists

🧲 Provides ways of properly checking if a path exists inside a given array of files/directories both on Windows and UNIX-like operating systems. 🗺

@igor.dvlpr/zep

🧠 Zep is a zero-dependency, efficient debounce module. ⏰

@igor.dvlpr/valid-path

🧰 Provides ways of testing whether a given value can be a valid file/directory name. 🏜

@igor.dvlpr/my-file-path

🌟 An npm module that strongly types file paths! 🥊

@igor.dvlpr/recursive-readdir

📖 Provides recursive readdir() and readdirSync() functions. 📁


Provided by Igor Dimitrijević (@igorskyflyer).

Package Sidebar

Install

npm i @igor.dvlpr/node-clone-js

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

7.33 kB

Total Files

5

Last publish

Collaborators

  • igor.dvlpr