UNPKG

coz-bud

Version:
32 lines (27 loc) 2.8 kB
/** * 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. * */ 'use strict'; /** @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=