File tree Expand file tree Collapse file tree 1 file changed +14
-18
lines changed Expand file tree Collapse file tree 1 file changed +14
-18
lines changed Original file line number Diff line number Diff line change @@ -19,25 +19,21 @@ import { expressionTypes } from './types';
1919import { createExpression } from './default' ;
2020import { isArraySpread } from '../values/types' ;
2121
22- const parameterEvaluator = context => ( p , parameter ) => {
23- return p . then ( acc => new Promise ( ( resolve , reject ) => {
24- parameter . evaluate ( context ) . then ( value => {
25- if ( isArraySpread ( value ) ) {
26- resolve ( [
27- ...acc ,
28- ...value . asArray ( ) ,
29- ] ) ;
30- } else {
31- resolve ( [
32- ...acc ,
33- value ,
34- ] ) ;
35- }
36- } ) . catch ( reject ) ;
37- } ) ) ;
38- } ;
22+ const mergeValues = previousParameters => value => isArraySpread ( value )
23+ ? [
24+ ...previousParameters ,
25+ ...value . asArray ( ) ,
26+ ]
27+ : [
28+ ...previousParameters ,
29+ value ,
30+ ] ;
31+
32+ const evaluateParameter = ( context , parameter ) => previousParameters => parameter . evaluate ( context ) . then ( mergeValues ( previousParameters ) ) ;
33+
34+ const parameterReducer = context => ( acc , parameter ) => acc . then ( evaluateParameter ( context , parameter ) ) ;
3935
40- const evaluateParameters = async ( context , parameters ) => parameters . reduce ( parameterEvaluator ( context ) , Promise . resolve ( [ ] ) ) ;
36+ const evaluateParameters = async ( context , parameters ) => parameters . reduce ( parameterReducer ( context ) , Promise . resolve ( [ ] ) ) ;
4137
4238const evaluate = ( location , callee , parameters ) => async context => {
4339 context . setLocation ( location ) ;
You can’t perform that action at this time.
0 commit comments