diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..08426d6 --- /dev/null +++ b/.npmignore @@ -0,0 +1,4 @@ +src +test +.babelrc +.travis.yml \ No newline at end of file diff --git a/README.md b/README.md index 28256a3..e26c823 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,18 @@ Stand-alone deep cloning of Arrays and Objects $ npm install --save deep-clone ``` -Recursively copy nested objects and arrays. +Recursively clone nested objects and arrays containing primitive data or objects and arrays containing primitive data. ```javascript import deepClone from 'deep-clone' const obj = { /* ... */ } -const cloneObj = deepClone(obj) +const cloneOfObj = deepClone(obj) const arr = [ /* ... */ ] -const cloneArr = deepClone(arr) +const cloneOfArr = deepClone(arr) ``` + +Other options: +- [clone-deep](https://github.com/jonschlinkert/clone-deep) +- [safe-clone-deep](https://github.com/tracker1/safe-clone-deep) \ No newline at end of file diff --git a/index.js b/lib/index.js similarity index 74% rename from index.js rename to lib/index.js index 67e6e9e..149adec 100644 --- a/index.js +++ b/lib/index.js @@ -10,16 +10,16 @@ function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.const function deepClone(obj) { if (!obj || (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') return obj; if (Array.isArray(obj)) { - var _copy = new Array(obj.length); + var _clone = new Array(obj.length); for (var i = 0; i < obj.length; i++) { - _copy[i] = deepClone(obj[i]); + _clone[i] = deepClone(obj[i]); } - return _copy; + return _clone; } - var copy = {}; + var clone = {}; var keys = Object.keys(obj); for (var i = 0; i < keys.length; i++) { - copy[keys[i]] = deepClone(obj[keys[i]]); + clone[keys[i]] = deepClone(obj[keys[i]]); } - return copy; -} + return clone; +} \ No newline at end of file diff --git a/package.json b/package.json index 7af651e..3104f21 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,20 @@ { "name": "deep-clone", - "version": "1.0.0", + "version": "1.0.1", "description": "Stand-alone deep cloning of Arrays and Objects", - "main": "index.js", + "main": "lib/index.js", "scripts": { "test": "mocha --compilers js:babel-core/register", "dev": "mocha -w --compilers js:babel-core/register", "precompile": "npm test", - "compile": "babel deep-clone.js -o index.js", + "compile": "babel src --out-dir lib", "prepublish": "npm run compile" }, "repository": { "type": "git", "url": "git+https://github.com/thebearingedge/deep-clone.git" }, + "keywords": ["clone"], "author": "", "license": "MIT", "bugs": { diff --git a/deep-clone.js b/src/index.js similarity index 59% rename from deep-clone.js rename to src/index.js index 821fec2..4798797 100644 --- a/deep-clone.js +++ b/src/index.js @@ -2,16 +2,16 @@ export default function deepClone(obj) { if (!obj || typeof obj !== 'object') return obj if (Array.isArray(obj)) { - const copy = new Array(obj.length) + const clone = new Array(obj.length) for (let i = 0; i < obj.length; i++) { - copy[i] = deepClone(obj[i]) + clone[i] = deepClone(obj[i]) } - return copy + return clone } - const copy = {} + const clone = {} const keys = Object.keys(obj) for (let i = 0; i < keys.length; i++) { - copy[keys[i]] = deepClone(obj[keys[i]]) + clone[keys[i]] = deepClone(obj[keys[i]]) } - return copy + return clone } diff --git a/test/deep-clone.test.js b/test/index.js similarity index 97% rename from test/deep-clone.test.js rename to test/index.js index 813a49e..39cccbe 100644 --- a/test/deep-clone.test.js +++ b/test/index.js @@ -1,6 +1,6 @@ import { expect } from 'chai' -import deepClone from '../deep-clone' +import deepClone from '../src/index.js' describe('deepClone', () => {