@@ -2,16 +2,30 @@ const yargs = require('yargs');
22
33const jsCodeShiftOptions = [ 'ignore-config' , 'ignore-pattern' ] ;
44
5- function parseTransformArgs ( args ) {
5+ function parseTransformArgs ( args , codeShiftOptions = jsCodeShiftOptions ) {
66 let parsedArgs = yargs . parse ( args ) ;
77 let paths = parsedArgs . _ ;
8- let options = Object . keys ( parsedArgs ) . reduce ( ( acc , key ) => {
9- if ( ! [ '_' , '$0' , 'help' , 'version' ] . includes ( key ) ) {
10- acc [ key ] = parsedArgs [ key ] ;
8+ let { options, transformerOptions } = Object . keys ( parsedArgs ) . reduce (
9+ ( acc , key ) => {
10+ if ( ! [ '_' , '$0' , 'help' , 'version' ] . includes ( key ) ) {
11+ let KeyInkebabCase = key . replace (
12+ / ( [ a - z ] ) ( [ A - Z ] ) / g,
13+ ( _ , $1 , $2 ) => `${ $1 } -${ $2 . toLowerCase ( ) } `
14+ ) ;
15+ if ( codeShiftOptions . includes ( key ) ) {
16+ acc . transformerOptions . push ( `--${ key } ` , parsedArgs [ key ] ) ;
17+ } else if ( ! codeShiftOptions . includes ( KeyInkebabCase ) ) {
18+ acc . options [ key ] = parsedArgs [ key ] ;
19+ }
20+ }
21+ return acc ;
22+ } ,
23+ {
24+ options : { } ,
25+ transformerOptions : [ ] ,
1126 }
12- return acc ;
13- } , { } ) ;
14- return { paths, options } ;
27+ ) ;
28+ return { paths, options, transformerOptions } ;
1529}
1630
1731function getOptions ( ) {
@@ -22,18 +36,4 @@ function getOptions() {
2236 }
2337}
2438
25- function extractJSCodeShiftOptions ( options , codeShiftOptions = jsCodeShiftOptions ) {
26- let cliOptions = Object . assign ( { } , options ) ;
27- let jsCodeShiftOptions = [ ] ;
28- codeShiftOptions . forEach ( option => {
29- if ( Object . prototype . hasOwnProperty . call ( cliOptions , option ) ) {
30- let camelCaseOption = option . replace ( / - ( [ a - z ] ) / g, ( _ , up ) => up . toUpperCase ( ) ) ;
31- jsCodeShiftOptions . push ( `--${ option } ` , options [ option ] ) ;
32- delete cliOptions [ option ] ;
33- delete cliOptions [ camelCaseOption ] ;
34- }
35- } ) ;
36- return { cliOptions, jsCodeShiftOptions } ;
37- }
38-
39- module . exports = { parseTransformArgs, getOptions, extractJSCodeShiftOptions } ;
39+ module . exports = { parseTransformArgs, getOptions } ;
0 commit comments