1
- //! cli-argv-util v1.2.3 ~~ https://github.com/center-key/cli-argv-util ~~ MIT License
1
+ //! cli-argv-util v1.2.4 ~~ https://github.com/center-key/cli-argv-util ~~ MIT License
2
2
3
3
import { execSync } from 'node:child_process' ;
4
4
import fs from 'fs' ;
@@ -8,17 +8,7 @@ const cliArgvUtil = {
8
8
const toCamel = ( token ) => token . replace ( / - ./ g, char => char [ 1 ] . toUpperCase ( ) ) ;
9
9
const toEntry = ( pair ) => [ toCamel ( pair [ 0 ] ) , pair [ 1 ] ] ;
10
10
const toPair = ( flag ) => flag . replace ( / ^ - - / , '' ) . split ( '=' ) ;
11
- const unquote = ( builder , nextArg ) => {
12
- const arg = nextArg . replace ( / ^ ' / , '' ) . replace ( / ' $ / , '' ) ;
13
- const last = builder [ 1 ] . length - 1 ;
14
- if ( builder [ 0 ] )
15
- builder [ 1 ] [ last ] = builder [ 1 ] [ last ] + ' ' + arg ;
16
- else
17
- builder [ 1 ] . push ( arg ) ;
18
- const quoteMode = ( / ^ ' / . test ( nextArg ) || builder [ 0 ] ) && ! / ' $ / . test ( nextArg ) ;
19
- return [ quoteMode , builder [ 1 ] ] ;
20
- } ;
21
- const args = process . argv . slice ( 2 ) . reduce ( unquote , [ false , [ ] ] ) [ 1 ] ;
11
+ const args = cliArgvUtil . unquoteArgs ( process . argv . slice ( 2 ) ) ;
22
12
const pairs = args . filter ( arg => / ^ - - / . test ( arg ) ) . map ( toPair ) ;
23
13
const flagMap = Object . fromEntries ( pairs . map ( toEntry ) ) ;
24
14
const onEntries = validFlags . map ( flag => [ toCamel ( flag ) , toCamel ( flag ) in flagMap ] ) ;
@@ -42,5 +32,18 @@ const cliArgvUtil = {
42
32
readFolder ( folder ) {
43
33
return fs . readdirSync ( folder , { recursive : true } ) . map ( file => slash ( String ( file ) ) ) . sort ( ) ;
44
34
} ,
35
+ unquoteArgs ( args ) {
36
+ const unquote = ( builder , nextArg ) => {
37
+ const arg = nextArg . replace ( / ^ ' / , '' ) . replace ( / ' $ / , '' ) ;
38
+ const last = builder [ 1 ] . length - 1 ;
39
+ if ( builder [ 0 ] )
40
+ builder [ 1 ] [ last ] = builder [ 1 ] [ last ] + ' ' + arg ;
41
+ else
42
+ builder [ 1 ] . push ( arg ) ;
43
+ const quoteMode = ( / ^ ' / . test ( nextArg ) || builder [ 0 ] ) && ! / ' $ / . test ( nextArg ) ;
44
+ return [ quoteMode , builder [ 1 ] ] ;
45
+ } ;
46
+ return args . reduce ( unquote , [ false , [ ] ] ) [ 1 ] ;
47
+ } ,
45
48
} ;
46
49
export { cliArgvUtil } ;
0 commit comments