all files / scour/utilities/ extend_in.js

100% Statements 10/10
100% Branches 2/2
100% Functions 1/1
100% Lines 9/9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16              
const get = require('./get')
const set = require('./set')
const assign = require('object-assign')
 
module.exports = function extendIn (source, keypath, extensions) {
  if (keypath.length === 0) return assign({}, source, extensions)
 
  var data = assign({}, get(source, keypath))
 
  for (var i = 2, len = arguments.length; i < len; i++) {
    assign(data, arguments[i])
  }
 
  return set(source, keypath, data)
}