11/* eslint-disable node/no-extraneous-import */ 
22/* eslint-disable node/no-unsupported-features/es-syntax */ 
33import  type  {  ExpressionKind ,  SpreadElementKind  }  from  'ast-types/gen/kinds' ; 
4- import  type  {  JSCodeshift ,  ObjectExpression ,  ObjectProperty ,  Transform  }  from  'jscodeshift' ; 
4+ import  type  { 
5+   CallExpression , 
6+   JSCodeshift , 
7+   ObjectExpression , 
8+   ObjectProperty , 
9+   Transform , 
10+ }  from  'jscodeshift' ; 
511
12+ function  creatorCall ( j : JSCodeshift ,  type : 'reducer' ,  reducer : ExpressionKind ) : CallExpression ; 
13+ // eslint-disable-next-line no-redeclare 
14+ function  creatorCall ( 
15+   j : JSCodeshift , 
16+   type : 'preparedReducer' , 
17+   prepare : ExpressionKind , 
18+   reducer : ExpressionKind 
19+ ) : CallExpression ; 
20+ // eslint-disable-next-line no-redeclare 
621function  creatorCall ( 
722  j : JSCodeshift , 
823  type : 'reducer'  |  'preparedReducer' , 
9-   argumentsParam : Array < ExpressionKind  |  SpreadElementKind > 
24+   ... rest : Array < ExpressionKind  |  SpreadElementKind > 
1025)  { 
11-   return  j . callExpression ( 
12-     j . memberExpression ( j . identifier ( 'create' ) ,  j . identifier ( type ) ) , 
13-     argumentsParam 
14-   ) ; 
26+   return  j . callExpression ( j . memberExpression ( j . identifier ( 'create' ) ,  j . identifier ( type ) ) ,  rest ) ; 
1527} 
1628
1729export  function  reducerPropsToBuilderExpression ( j : JSCodeshift ,  defNode : ObjectExpression )  { 
@@ -23,7 +35,7 @@ export function reducerPropsToBuilderExpression(j: JSCodeshift, defNode: ObjectE
2335        const  {  key,  params,  body }  =  property ; 
2436        finalProp  =  j . objectProperty ( 
2537          key , 
26-           creatorCall ( j ,  'reducer' ,  [ j . arrowFunctionExpression ( params ,  body ) ] ) 
38+           creatorCall ( j ,  'reducer' ,  j . arrowFunctionExpression ( params ,  body ) ) 
2739        ) ; 
2840        break ; 
2941      } 
@@ -76,15 +88,17 @@ export function reducerPropsToBuilderExpression(j: JSCodeshift, defNode: ObjectE
7688            if  ( preparedReducerParams . prepare  &&  preparedReducerParams . reducer )  { 
7789              finalProp  =  j . objectProperty ( 
7890                key , 
79-                 creatorCall ( j ,  'preparedReducer' ,  [ 
91+                 creatorCall ( 
92+                   j , 
93+                   'preparedReducer' , 
8094                  preparedReducerParams . prepare , 
81-                   preparedReducerParams . reducer , 
82-                 ] ) 
95+                   preparedReducerParams . reducer 
96+                 ) 
8397              ) ; 
8498            }  else  if  ( preparedReducerParams . reducer )  { 
8599              finalProp  =  j . objectProperty ( 
86100                key , 
87-                 creatorCall ( j ,  'reducer' ,  [ preparedReducerParams . reducer ] ) 
101+                 creatorCall ( j ,  'reducer' ,  preparedReducerParams . reducer ) 
88102              ) ; 
89103            } 
90104            break ; 
@@ -95,7 +109,7 @@ export function reducerPropsToBuilderExpression(j: JSCodeshift, defNode: ObjectE
95109          case  'MemberExpression' :
96110          case  'CallExpression' : { 
97111            const  {  value }  =  property ; 
98-             finalProp  =  j . objectProperty ( key ,  creatorCall ( j ,  'reducer' ,  [ value ] ) ) ; 
112+             finalProp  =  j . objectProperty ( key ,  creatorCall ( j ,  'reducer' ,  value ) ) ; 
99113            break ; 
100114          } 
101115        } 
0 commit comments