Sha256: 9083559b0be70faf526deb5835a7905115bdad480fb2053b68d53c5221814281

Contents?: true

Size: 1.79 KB

Versions: 13

Compression:

Stored size: 1.79 KB

Contents

/**
 * lodash 3.1.1 (Custom Build) <https://lodash.com/>
 * Build: `lodash modern modularize exports="npm" -o ./`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */
var bindCallback = require('lodash._bindcallback'),
    isIterateeCall = require('lodash._isiterateecall'),
    restParam = require('lodash.restparam');

/**
 * Creates a function that assigns properties of source object(s) to a given
 * destination object.
 *
 * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.
 *
 * @private
 * @param {Function} assigner The function to assign values.
 * @returns {Function} Returns the new assigner function.
 */
function createAssigner(assigner) {
  return restParam(function(object, sources) {
    var index = -1,
        length = object == null ? 0 : sources.length,
        customizer = length > 2 ? sources[length - 2] : undefined,
        guard = length > 2 ? sources[2] : undefined,
        thisArg = length > 1 ? sources[length - 1] : undefined;

    if (typeof customizer == 'function') {
      customizer = bindCallback(customizer, thisArg, 5);
      length -= 2;
    } else {
      customizer = typeof thisArg == 'function' ? thisArg : undefined;
      length -= (customizer ? 1 : 0);
    }
    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
      customizer = length < 3 ? undefined : customizer;
      length = 1;
    }
    while (++index < length) {
      var source = sources[index];
      if (source) {
        assigner(object, source, customizer);
      }
    }
    return object;
  });
}

module.exports = createAssigner;

Version data entries

13 entries across 13 versions & 6 rubygems

Version Path
ilog-0.4.1 node_modules/lodash._createassigner/index.js
ilog-0.4.0 node_modules/lodash._createassigner/index.js
ilog-0.3.3 node_modules/lodash._createassigner/index.js
optimacms-0.4.3 spec/dummy/node_modules/lodash._createassigner/index.js
optimacms-0.4.2 spec/dummy/node_modules/lodash._createassigner/index.js
cortex-0.1.3 spec/dummy/node_modules/lodash._createassigner/index.js
xcodebuild-helper-1.2.5 externals/ios-sim-master/node_modules/lodash._createassigner/index.js
xcodebuild-helper-1.2.3 externals/ios-sim-master/node_modules/lodash._createassigner/index.js
eslint_node_modules-1.6.0.1 vendor/node_modules/eslint/node_modules/lodash.merge/node_modules/lodash._createassigner/index.js
eslint_node_modules-1.6.0 vendor/node_modules/eslint/node_modules/lodash.merge/node_modules/lodash._createassigner/index.js
gulp_assets-1.0.0.pre.5 template/node_modules/gulp-livereload/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js
gulp_assets-1.0.0.pre.4 template/node_modules/gulp-livereload/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js
gulp_assets-1.0.0.pre.3 template/node_modules/gulp-livereload/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js