UNPKG

lodash-es

Version:

The modern build of lodash exported as ES modules.

36 lines (33 loc) 1.05 kB
import baseMatches from './baseMatches'; import baseMatchesProperty from './baseMatchesProperty'; import bindCallback from './bindCallback'; import identity from '../utility/identity'; import property from '../utility/property'; /** * The base implementation of `_.callback` which supports specifying the * number of arguments to provide to `func`. * * @private * @param {*} [func=_.identity] The value to convert to a callback. * @param {*} [thisArg] The `this` binding of `func`. * @param {number} [argCount] The number of arguments to provide to `func`. * @returns {Function} Returns the callback. */ function baseCallback(func, thisArg, argCount) { var type = typeof func; if (type == 'function') { return thisArg === undefined ? func : bindCallback(func, thisArg, argCount); } if (func == null) { return identity; } if (type == 'object') { return baseMatches(func); } return thisArg === undefined ? property(func) : baseMatchesProperty(func, thisArg); } export default baseCallback;