_baseWrapperValue.js (857B)
1 var LazyWrapper = require('./_LazyWrapper'), 2 arrayPush = require('./_arrayPush'), 3 arrayReduce = require('./_arrayReduce'); 4 5 /** 6 * The base implementation of `wrapperValue` which returns the result of 7 * performing a sequence of actions on the unwrapped `value`, where each 8 * successive action is supplied the return value of the previous. 9 * 10 * @private 11 * @param {*} value The unwrapped value. 12 * @param {Array} actions Actions to perform to resolve the unwrapped value. 13 * @returns {*} Returns the resolved value. 14 */ 15 function baseWrapperValue(value, actions) { 16 var result = value; 17 if (result instanceof LazyWrapper) { 18 result = result.value(); 19 } 20 return arrayReduce(actions, function(result, action) { 21 return action.func.apply(action.thisArg, arrayPush([result], action.args)); 22 }, result); 23 } 24 25 module.exports = baseWrapperValue;