artdaq_node_server  v1_00_08
 All Classes Namespaces Files Variables Pages
_baseMerge.js
1 var Stack = require('./_Stack'),
2  assignMergeValue = require('./_assignMergeValue'),
3  baseFor = require('./_baseFor'),
4  baseMergeDeep = require('./_baseMergeDeep'),
5  isObject = require('./isObject'),
6  keysIn = require('./keysIn');
7 
19 function baseMerge(object, source, srcIndex, customizer, stack) {
20  if (object === source) {
21  return;
22  }
23  baseFor(source, function(srcValue, key) {
24  if (isObject(srcValue)) {
25  stack || (stack = new Stack);
26  baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
27  }
28  else {
29  var newValue = customizer
30  ? customizer(object[key], srcValue, (key + ''), object, source, stack)
31  : undefined;
32 
33  if (newValue === undefined) {
34  newValue = srcValue;
35  }
36  assignMergeValue(object, key, newValue);
37  }
38  }, keysIn);
39 }
40 
41 module.exports = baseMerge;