PATH:
usr
/
local
/
lib
/
node_modules
/
gulp
/
node_modules
/
es5-ext
/
object
"use strict"; var includes = require("../array/#/contains") , uniq = require("../array/#/uniq") , copyDeep = require("./copy-deep") , objForEach = require("./for-each") , isPlainObject = require("./is-plain-object") , ensureValue = require("./valid-value"); var isArray = Array.isArray, slice = Array.prototype.slice; var deepAssign = function (target, source) { if (target === source) return target; if (isPlainObject(target) && isPlainObject(source)) { objForEach(source, function (value, key) { target[key] = deepAssign(target[key], value); }); return target; } if (isArray(target) && isArray(source)) { source.forEach(function (item) { if (includes.call(target, item)) return; if (isArray(item) || isPlainObject(item)) item = copyDeep(item); target.push(item); }); return target; } if (isPlainObject(source) || isArray(source)) return copyDeep(source); return source; }; module.exports = function (target/*, ...objects*/) { return uniq .call([ensureValue(target)].concat(slice.call(arguments, 1).map(ensureValue))) .reduce(deepAssign); };
[-] is-callable.js
[edit]
[-] compact.js
[edit]
[-] copy-deep.js
[edit]
[-] first-key.js
[edit]
[-] ensure-finite-number.js
[edit]
[-] find.js
[edit]
[-] validate-stringifiable-value.js
[edit]
[-] validate-array-like.js
[edit]
[-] validate-array-like-object.js
[edit]
[-] ensure-natural-number.js
[edit]
[-] ensure-promise.js
[edit]
[-] mixin-prototypes.js
[edit]
[-] map-keys.js
[edit]
[-] is-array-like.js
[edit]
[-] is-value.js
[edit]
[-] is-integer.js
[edit]
[-] copy.js
[edit]
[-] is-empty.js
[edit]
[-] is.js
[edit]
[+]
..
[+]
keys
[-] some.js
[edit]
[-] key-of.js
[edit]
[-] find-key.js
[edit]
[+]
assign
[-] is-promise.js
[edit]
[-] is-copy-deep.js
[edit]
[-] validate-stringifiable.js
[edit]
[-] flatten.js
[edit]
[-] is-object.js
[edit]
[-] unserialize.js
[edit]
[-] ensure-thenable.js
[edit]
[-] valid-value.js
[edit]
[-] eq.js
[edit]
[-] valid-object.js
[edit]
[+]
entries
[-] is-plain-function.js
[edit]
[-] get-property-names.js
[edit]
[-] ensure-plain-object.js
[edit]
[-] assign-deep.js
[edit]
[-] ensure-natural-number-value.js
[edit]
[-] is-plain-object.js
[edit]
[-] is-thenable.js
[edit]
[-] count.js
[edit]
[-] index.js
[edit]
[-] to-array.js
[edit]
[-] _iterate.js
[edit]
[-] primitive-set.js
[edit]
[-] compare.js
[edit]
[-] is-finite-number.js
[edit]
[-] map.js
[edit]
[-] filter.js
[edit]
[-] every.js
[edit]
[-] ensure-plain-function.js
[edit]
[-] safe-traverse.js
[edit]
[-] create.js
[edit]
[-] is-copy.js
[edit]
[-] is-natural-number-value.js
[edit]
[-] clear.js
[edit]
[-] ensure-array.js
[edit]
[-] is-natural-number.js
[edit]
[-] valid-callable.js
[edit]
[-] for-each.js
[edit]
[+]
set-prototype-of
[-] normalize-options.js
[edit]
[-] serialize.js
[edit]
[-] is-number-value.js
[edit]
[-] mixin.js
[edit]
[-] ensure-integer.js
[edit]