merge.js 610 B

123456789101112131415161718192021222324
  1. var utils = require('../utils');
  2. /**
  3. * Merge the object `dest` with the given args.
  4. *
  5. * @param {Object} dest
  6. * @param {Object} ...
  7. * @return {Object} dest
  8. * @api public
  9. */
  10. (module.exports = function merge(dest){
  11. utils.assertPresent(dest, 'dest');
  12. dest = utils.unwrap(dest).first;
  13. utils.assertType(dest, 'object', 'dest');
  14. var last = utils.unwrap(arguments[arguments.length - 1]).first
  15. , deep = (true === last.val);
  16. for (var i = 1, len = arguments.length - deep; i < len; ++i) {
  17. utils.merge(dest.vals, utils.unwrap(arguments[i]).first.vals, deep);
  18. }
  19. return dest;
  20. }).raw = true;