UNPKG

855 BJavaScriptView Raw
1import LazyWrapper from './_LazyWrapper.js';
2import arrayPush from './_arrayPush.js';
3import arrayReduce from './_arrayReduce.js';
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 */
15function 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
25export default baseWrapperValue;