coz-bud
Version:
bud for coz
28 lines (24 loc) • 650 B
JavaScript
/**
* Copy object properties unless defined in destination object.
* @memberof module:coz-bud/lib/copying
* @function fallbackCopy
* @param {object} src - Object to copy from.
* @param {object?} dest - Object to copy to.
* @returns {object} - Dest object.
*
*/
/** @lends fallbackCopy */
function fallbackCopy (src = {}, dest = {}) {
let keys = Object.keys(src)
for (let i = 0, len = keys.length; i < len; i++) {
let key = keys[ i ]
let val = dest[ key ]
let shouldCopy = (typeof val === 'undefined')
if (shouldCopy) {
dest[ key ] = src[ key ]
}
}
return dest
}
module.exports = fallbackCopy