@@ -24,14 +24,19 @@ function getMethod (logic, engine, methodName, above) {
24
24
25
25
if ( Array . isArray ( args ) ) {
26
26
const optimizedArgs = args . map ( l => optimize ( l , engine , above ) )
27
+ if ( optimizedArgs . every ( l => typeof l !== 'function' ) ) return ( data , abv ) => called ( optimizedArgs , data , abv || above , engine )
27
28
return ( data , abv ) => {
28
29
const evaluatedArgs = optimizedArgs . map ( l => typeof l === 'function' ? l ( data , abv ) : l )
29
30
return called ( evaluatedArgs , data , abv || above , engine )
30
31
}
31
32
} else {
32
- const optimizedArgs = optimize ( args , engine , above )
33
- if ( method . optimizeUnary ) return ( data , abv ) => called ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs , data , abv || above , engine )
34
- return ( data , abv ) => called ( coerceArray ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs ) , data , abv || above , engine )
33
+ let optimizedArgs = optimize ( args , engine , above )
34
+ if ( method . optimizeUnary ) {
35
+ if ( typeof optimizedArgs === 'function' ) return ( data , abv ) => called ( optimizedArgs ( data , abv ) , data , abv || above , engine )
36
+ return ( data , abv ) => called ( optimizedArgs , data , abv || above , engine )
37
+ }
38
+ if ( typeof optimizedArgs === 'function' ) return ( data , abv ) => called ( optimizedArgs ( data , abv ) , data , abv || above , engine )
39
+ return ( data , abv ) => called ( coerceArray ( optimizedArgs ) , data , abv || above , engine )
35
40
}
36
41
}
37
42
0 commit comments