Sha256: 21d909faa8471c676103c2fe90e54e18ff2fb395dd0c3a7ffb552af06211c89e

Contents?: true

Size: 1.3 KB

Versions: 43

Compression:

Stored size: 1.3 KB

Contents

var Stack = require('./_Stack'),
    assignMergeValue = require('./_assignMergeValue'),
    baseFor = require('./_baseFor'),
    baseMergeDeep = require('./_baseMergeDeep'),
    isObject = require('./isObject'),
    keysIn = require('./keysIn'),
    safeGet = require('./_safeGet');

/**
 * The base implementation of `_.merge` without support for multiple sources.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} [customizer] The function to customize merged values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */
function baseMerge(object, source, srcIndex, customizer, stack) {
  if (object === source) {
    return;
  }
  baseFor(source, function(srcValue, key) {
    if (isObject(srcValue)) {
      stack || (stack = new Stack);
      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
    }
    else {
      var newValue = customizer
        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
        : undefined;

      if (newValue === undefined) {
        newValue = srcValue;
      }
      assignMergeValue(object, key, newValue);
    }
  }, keysIn);
}

module.exports = baseMerge;

Version data entries

43 entries across 43 versions & 7 rubygems

Version Path
govuk_publishing_components-17.12.1 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.12.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.11.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.10.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.9.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.8.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.7.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.6.1 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.6.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.5.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.4.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.3.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.2.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.1.1 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.1.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-17.0.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-16.29.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-16.28.0 node_modules/lodash/_baseMerge.js
govuk_publishing_components-16.27.1 node_modules/lodash/_baseMerge.js
govuk_publishing_components-16.27.0 node_modules/lodash/_baseMerge.js