UNPKG

soft-extend

Version:

Non-destructive extend. Just appends new properties to an object, keeping old ones.

29 lines (25 loc) 627 B
/** * Append all not-existing props to the initial object * * @return {[type]} [description] */ module.exports = function softExtend(){ var args = [].slice.call(arguments); var res = args[0]; var l = args.length; if (typeof res !== 'object') throw Error('Bad argument'); for (var i = 1, l = args.length, obj; i < l; i++) { obj = args[i]; if (typeof obj === 'object') { for (var prop in obj) { if (res[prop] === undefined) { res[prop] = obj[prop]; } else if (typeof res[prop] === 'object') { softExtend(res[prop], obj[prop]) } } } } return res; };