Comparing version 0.2.7 to 0.2.10
44
index.js
@@ -1,23 +0,33 @@ | ||
module.exports = function merge (target, src) { | ||
var array = Array.isArray(src) | ||
var dst = array && [] || {} | ||
(function (root, factory) { | ||
if (typeof define === 'function' && define.amd) { | ||
define(factory); | ||
} else if (typeof exports === 'object') { | ||
module.exports = factory(); | ||
} else { | ||
root.deepmerge = factory(); | ||
} | ||
}(this, function () { | ||
return function deepmerge(target, src) { | ||
var array = Array.isArray(src); | ||
var dst = array && [] || {}; | ||
if (array) { | ||
target = target || [] | ||
dst = dst.concat(target) | ||
target = target || []; | ||
dst = dst.concat(target); | ||
src.forEach(function(e, i) { | ||
if (typeof target[i] === 'undefined') { | ||
dst[i] = e | ||
if (typeof dst[i] === 'undefined') { | ||
dst[i] = e; | ||
} else if (typeof e === 'object') { | ||
dst[i] = merge(target[i], e) | ||
dst[i] = deepmerge(target[i], e); | ||
} else { | ||
if (target.indexOf(e) === -1) { | ||
dst.push(e) | ||
dst.push(e); | ||
} | ||
} | ||
}) | ||
}); | ||
} else { | ||
if (target && typeof target === 'object') { | ||
Object.keys(target).forEach(function (key) { | ||
dst[key] = target[key] | ||
dst[key] = target[key]; | ||
}) | ||
@@ -27,15 +37,17 @@ } | ||
if (typeof src[key] !== 'object' || !src[key]) { | ||
dst[key] = src[key] | ||
dst[key] = src[key]; | ||
} | ||
else { | ||
if (!target[key]) { | ||
dst[key] = src[key] | ||
dst[key] = src[key]; | ||
} else { | ||
dst[key] = merge(target[key], src[key]) | ||
dst[key] = deepmerge(target[key], src[key]); | ||
} | ||
} | ||
}) | ||
}); | ||
} | ||
return dst | ||
return dst; | ||
} | ||
})); |
The MIT License (MIT) | ||
Copyright (c) <year> <copyright holders> | ||
Copyright (c) 2012 Nicholas Fisher | ||
@@ -21,2 +21,2 @@ Permission is hereby granted, free of charge, to any person obtaining a copy | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
THE SOFTWARE. |
@@ -5,3 +5,3 @@ { | ||
"description": "A library for deep (recursive) merging of Javascript objects", | ||
"version": "0.2.7", | ||
"version": "0.2.10", | ||
"homepage": "https://github.com/nrf110/deepmerge", | ||
@@ -17,8 +17,9 @@ "repository": { | ||
"scripts": { | ||
"test" : "tap test/*.js" | ||
"test": "tap test/*.js" | ||
}, | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"tap" : "~0.2.4" | ||
} | ||
"tap": "~0.4.8" | ||
}, | ||
"license": "MIT" | ||
} |
@@ -144,2 +144,13 @@ var merge = require('../') | ||
test('should work on another simple array', function(t) { | ||
var target = ["a1","a2","c1","f1","p1"]; | ||
var src = ["t1","s1","c2","r1","p2","p3"]; | ||
var expected = ["a1", "a2", "c1", "f1", "p1", "t1", "s1", "c2", "r1", "p2", "p3"] | ||
t.deepEqual(target, ["a1", "a2", "c1", "f1", "p1"]) | ||
t.deepEqual(merge(target, src), expected) | ||
t.ok(Array.isArray(merge(target, src))) | ||
t.end() | ||
}) | ||
test('should work on array properties', function (t) { | ||
@@ -146,0 +157,0 @@ var src = { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9806
8
263
71
1