You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					20 lines
				
				804 B
			
		
		
			
		
	
	
					20 lines
				
				804 B
			| 
											3 years ago
										 | var identity = require('./identity.js'); | ||
|  | var isFunction = require('./isFunction.js'); | ||
|  | var isObject = require('./isObject.js'); | ||
|  | var isArray = require('./isArray.js'); | ||
|  | var matcher = require('./matcher.js'); | ||
|  | var property = require('./property.js'); | ||
|  | var _optimizeCb = require('./_optimizeCb.js'); | ||
|  | 
 | ||
|  | // An internal function to generate callbacks that can be applied to each
 | ||
|  | // element in a collection, returning the desired result — either `_.identity`,
 | ||
|  | // an arbitrary callback, a property matcher, or a property accessor.
 | ||
|  | function baseIteratee(value, context, argCount) { | ||
|  |   if (value == null) return identity; | ||
|  |   if (isFunction(value)) return _optimizeCb(value, context, argCount); | ||
|  |   if (isObject(value) && !isArray(value)) return matcher(value); | ||
|  |   return property(value); | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = baseIteratee; |