2023-10-03 11:14:36 +08:00
|
|
|
var utils = require('../utils');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Merge the object `dest` with the given args.
|
|
|
|
*
|
|
|
|
* @param {Object} dest
|
|
|
|
* @param {Object} ...
|
|
|
|
* @return {Object} dest
|
|
|
|
* @api public
|
|
|
|
*/
|
|
|
|
|
|
|
|
(module.exports = function merge(dest){
|
|
|
|
utils.assertPresent(dest, 'dest');
|
|
|
|
dest = utils.unwrap(dest).first;
|
|
|
|
utils.assertType(dest, 'object', 'dest');
|
|
|
|
|
|
|
|
var last = utils.unwrap(arguments[arguments.length - 1]).first
|
|
|
|
, deep = (true === last.val);
|
|
|
|
|
|
|
|
for (var i = 1, len = arguments.length - deep; i < len; ++i) {
|
|
|
|
utils.merge(dest.vals, utils.unwrap(arguments[i]).first.vals, deep);
|
|
|
|
}
|
|
|
|
return dest;
|
|
|
|
}).raw = true;
|