coz-bud
Version:
bud for coz
32 lines (27 loc) • 2.8 kB
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() {
var src = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var dest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var keys = Object.keys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
var val = dest[key];
var shouldCopy = typeof val === 'undefined';
if (shouldCopy) {
dest[key] = src[key];
}
}
return dest;
}
module.exports = fallbackCopy;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhbGxiYWNrX2NvcHkuanMiXSwibmFtZXMiOlsiZmFsbGJhY2tDb3B5Iiwic3JjIiwiZGVzdCIsImtleXMiLCJPYmplY3QiLCJpIiwibGVuIiwibGVuZ3RoIiwia2V5IiwidmFsIiwic2hvdWxkQ29weSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7QUFVQTtBQUVBOztBQUNBLFNBQVNBLFlBQVQsR0FBNEM7QUFBQSxNQUFyQkMsR0FBcUIsdUVBQWYsRUFBZTtBQUFBLE1BQVhDLElBQVcsdUVBQUosRUFBSTtBQUMxQyxNQUFJQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0QsSUFBUCxDQUFZRixHQUFaLENBQVg7O0FBQ0EsT0FBSyxJQUFJSSxDQUFDLEdBQUcsQ0FBUixFQUFXQyxHQUFHLEdBQUdILElBQUksQ0FBQ0ksTUFBM0IsRUFBbUNGLENBQUMsR0FBR0MsR0FBdkMsRUFBNENELENBQUMsRUFBN0MsRUFBaUQ7QUFDL0MsUUFBSUcsR0FBRyxHQUFHTCxJQUFJLENBQUVFLENBQUYsQ0FBZDtBQUNBLFFBQUlJLEdBQUcsR0FBR1AsSUFBSSxDQUFFTSxHQUFGLENBQWQ7QUFDQSxRQUFJRSxVQUFVLEdBQUksT0FBT0QsR0FBUCxLQUFlLFdBQWpDOztBQUNBLFFBQUlDLFVBQUosRUFBZ0I7QUFDZFIsTUFBQUEsSUFBSSxDQUFFTSxHQUFGLENBQUosR0FBY1AsR0FBRyxDQUFFTyxHQUFGLENBQWpCO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPTixJQUFQO0FBQ0Q7O0FBRURTLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlosWUFBakIiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5IG9iamVjdCBwcm9wZXJ0aWVzIHVubGVzcyBkZWZpbmVkIGluIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBtZW1iZXJvZiBtb2R1bGU6Y296LWJ1ZC9saWIvY29weWluZ1xuICogQGZ1bmN0aW9uIGZhbGxiYWNrQ29weVxuICogQHBhcmFtIHtvYmplY3R9IHNyYyAtIE9iamVjdCB0byBjb3B5IGZyb20uXG4gKiBAcGFyYW0ge29iamVjdD99IGRlc3QgLSBPYmplY3QgdG8gY29weSB0by5cbiAqIEByZXR1cm5zIHtvYmplY3R9IC0gRGVzdCBvYmplY3QuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG4vKiogQGxlbmRzIGZhbGxiYWNrQ29weSAqL1xuZnVuY3Rpb24gZmFsbGJhY2tDb3B5IChzcmMgPSB7fSwgZGVzdCA9IHt9KSB7XG4gIGxldCBrZXlzID0gT2JqZWN0LmtleXMoc3JjKVxuICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2V5cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGxldCBrZXkgPSBrZXlzWyBpIF1cbiAgICBsZXQgdmFsID0gZGVzdFsga2V5IF1cbiAgICBsZXQgc2hvdWxkQ29weSA9ICh0eXBlb2YgdmFsID09PSAndW5kZWZpbmVkJylcbiAgICBpZiAoc2hvdWxkQ29weSkge1xuICAgICAgZGVzdFsga2V5IF0gPSBzcmNbIGtleSBdXG4gICAgfVxuICB9XG4gIHJldHVybiBkZXN0XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmFsbGJhY2tDb3B5XG4iXX0=