@@ -28,7 +28,7 @@ function getMethod (logic, engine, methodName, above) {
2828 }
2929
3030 let args = logic [ methodName ]
31- if ( ! args || typeof args !== 'object' ) args = [ args ]
31+ if ( ( ! args || typeof args !== 'object' ) && ! method . optimizeUnary ) args = [ args ]
3232
3333 if ( Array . isArray ( args ) ) {
3434 const optimizedArgs = args . map ( l => optimize ( l , engine , above ) )
@@ -50,12 +50,12 @@ function getMethod (logic, engine, methodName, above) {
5050
5151 if ( isSync ( optimizedArgs ) && ( method . method || method [ Sync ] ) ) {
5252 const called = method . method ? method . method : method
53- return declareSync ( ( data , abv ) => called ( coerceArray ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs , method . optimizeUnary ) , data , abv || above , engine ) , true )
53+ if ( method . optimizeUnary ) return declareSync ( ( data , abv ) => called ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs , data , abv || above , engine . fallback ) , true )
54+ return declareSync ( ( data , abv ) => called ( coerceArray ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs ) , data , abv || above , engine ) , true )
5455 }
5556
56- return async ( data , abv ) => {
57- return called ( coerceArray ( typeof optimizedArgs === 'function' ? await optimizedArgs ( data , abv ) : optimizedArgs , method . optimizeUnary ) , data , abv || above , engine )
58- }
57+ if ( method . optimizeUnary ) return async ( data , abv ) => called ( typeof optimizedArgs === 'function' ? await optimizedArgs ( data , abv ) : optimizedArgs , data , abv || above , engine )
58+ return async ( data , abv ) => called ( coerceArray ( typeof optimizedArgs === 'function' ? await optimizedArgs ( data , abv ) : optimizedArgs ) , data , abv || above , engine )
5959 }
6060}
6161
0 commit comments