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.
		
		
		
		
		
			
		
			
				
					26 lines
				
				857 B
			
		
		
			
		
	
	
					26 lines
				
				857 B
			| 
								 
											3 years ago
										 
									 | 
							
								var LazyWrapper = require('./_LazyWrapper'),
							 | 
						||
| 
								 | 
							
								    arrayPush = require('./_arrayPush'),
							 | 
						||
| 
								 | 
							
								    arrayReduce = require('./_arrayReduce');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The base implementation of `wrapperValue` which returns the result of
							 | 
						||
| 
								 | 
							
								 * performing a sequence of actions on the unwrapped `value`, where each
							 | 
						||
| 
								 | 
							
								 * successive action is supplied the return value of the previous.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @private
							 | 
						||
| 
								 | 
							
								 * @param {*} value The unwrapped value.
							 | 
						||
| 
								 | 
							
								 * @param {Array} actions Actions to perform to resolve the unwrapped value.
							 | 
						||
| 
								 | 
							
								 * @returns {*} Returns the resolved value.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function baseWrapperValue(value, actions) {
							 | 
						||
| 
								 | 
							
								  var result = value;
							 | 
						||
| 
								 | 
							
								  if (result instanceof LazyWrapper) {
							 | 
						||
| 
								 | 
							
								    result = result.value();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return arrayReduce(actions, function(result, action) {
							 | 
						||
| 
								 | 
							
								    return action.func.apply(action.thisArg, arrayPush([result], action.args));
							 | 
						||
| 
								 | 
							
								  }, result);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = baseWrapperValue;
							 |