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.
		
		
		
		
		
			
		
			
				
					18 lines
				
				764 B
			
		
		
			
		
	
	
					18 lines
				
				764 B
			| 
											3 years ago
										 | import identity from './identity.js'; | ||
|  | import isFunction from './isFunction.js'; | ||
|  | import isObject from './isObject.js'; | ||
|  | import isArray from './isArray.js'; | ||
|  | import matcher from './matcher.js'; | ||
|  | import property from './property.js'; | ||
|  | import optimizeCb from './_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.
 | ||
|  | export default 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); | ||
|  | } |