Skip to content

PeterNaydenov/deep-copy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep copy ( @peter.naydenov/deep-copy)

Creates an immutable copies of javascript data structures.

Installation

Install for node.js projects by writing in your terminal:

npm install @peter.naydenov/deep-copy

Once it has been installed, it can be used by writing this line of JavaScript:

let deepCopy = require ( '@peter.naydenov/deep-copy' )

or

import deepCopy from '@peter.naydenov/deep-copy'

Installation for browsers: Execute script 'npm run build' in the console. Then grab file "dist/deep-copy.min.js" and put it inside the project. Request the file from HTML page. Global variable 'deepCopy' is available for use.

        Note:
        Library is using 'generator functions'. If support for old browsers 
        is required, add a polyfill for 'generators'.

How it use it?

let 
      x = {
              ls   : [ 1,2,3 ]
            , name : 'Peter'
            , props : {
                          eyeColor: 'blue'
                        , age     : 47
                        , height  : 176
                        , sizes : [12,33,12,21]
                    }
            }
    , r = deepCopy ( x )
    ;
r.props.sizes.push ( 66 )   // will not change x.props.sizes
x.props.sizes[0] = 222222   // will not change r.props.sizes[0]
x.props.test = 'hello'      // will not create `test` in r.props
// Data-structures 'x' and 'r' are completely decoupled

Links

Credits

'@peter.naydenov/deep-copy' was created and supported by Peter Naydenov.

License

'@peter.naydenov/deep-copy' is released under the MIT License.

About

Creates an immutable copies of javascript data structures.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published