File tree 3 files changed +46
-5
lines changed 3 files changed +46
-5
lines changed Original file line number Diff line number Diff line change
1
+ import {
2
+ numberParser ,
3
+ numberOrBoolParser ,
4
+ booleanParser ,
5
+ } from '../src/cli/utils/parsers' ;
6
+
7
+ describe ( 'parsers' , ( ) => {
8
+ it ( 'parses correctly with numberParser' , ( ) => {
9
+ const parser = numberParser ( 'key' ) ;
10
+ expect ( parser ( 2 ) ) . toEqual ( 2 ) ;
11
+ expect ( parser ( '2' ) ) . toEqual ( 2 ) ;
12
+ expect ( ( ) => { parser ( 'string' ) } ) . toThrow ( ) ;
13
+ } ) ;
14
+
15
+ it ( 'parses correctly with numberOrBoolParser' , ( ) => {
16
+ const parser = numberOrBoolParser ( 'key' ) ;
17
+ expect ( parser ( true ) ) . toEqual ( true ) ;
18
+ expect ( parser ( false ) ) . toEqual ( false ) ;
19
+ expect ( parser ( 'true' ) ) . toEqual ( true ) ;
20
+ expect ( parser ( 'false' ) ) . toEqual ( false ) ;
21
+ expect ( parser ( 1 ) ) . toEqual ( 1 ) ;
22
+ expect ( parser ( '1' ) ) . toEqual ( 1 ) ;
23
+ } ) ;
24
+
25
+ it ( 'parses correctly with booleanParser' , ( ) => {
26
+ const parser = booleanParser ;
27
+ expect ( parser ( true ) ) . toEqual ( true ) ;
28
+ expect ( parser ( false ) ) . toEqual ( false ) ;
29
+ expect ( parser ( 'true' ) ) . toEqual ( true ) ;
30
+ expect ( parser ( 'false' ) ) . toEqual ( false ) ;
31
+ expect ( parser ( 1 ) ) . toEqual ( true ) ;
32
+ expect ( parser ( 2 ) ) . toEqual ( false ) ;
33
+ } ) ;
34
+ } ) ;
Original file line number Diff line number Diff line change @@ -201,6 +201,7 @@ export default {
201
201
action : booleanParser
202
202
} ,
203
203
"cluster" : {
204
+ env : PARSE_SERVER_CLUSTER ,
204
205
help : "Run with cluster, optionally set the number of processes default to os.cpus().length" ,
205
206
action : numberOrBoolParser ( "cluster" )
206
207
} ,
Original file line number Diff line number Diff line change 1
1
export function numberParser ( key ) {
2
2
return function ( opt ) {
3
- opt = parseInt ( opt ) ;
4
- if ( ! Number . isInteger ( opt ) ) {
5
- throw new Error ( `The ${ key } is invalid` ) ;
3
+ const intOpt = parseInt ( opt ) ;
4
+ if ( ! Number . isInteger ( intOpt ) ) {
5
+ throw new Error ( `Key ${ key } has invalid value ${ opt } ` ) ;
6
6
}
7
- return opt ;
7
+ return intOpt ;
8
8
}
9
9
}
10
10
@@ -13,6 +13,12 @@ export function numberOrBoolParser(key) {
13
13
if ( typeof opt === 'boolean' ) {
14
14
return opt ;
15
15
}
16
+ if ( opt === 'true' ) {
17
+ return true ;
18
+ }
19
+ if ( opt === 'false' ) {
20
+ return false ;
21
+ }
16
22
return numberParser ( key ) ( opt ) ;
17
23
}
18
24
}
@@ -45,7 +51,7 @@ export function moduleOrObjectParser(opt) {
45
51
}
46
52
47
53
export function booleanParser ( opt ) {
48
- if ( opt == true || opt == " true" || opt == "1" ) {
54
+ if ( opt == true || opt == ' true' || opt == '1' ) {
49
55
return true ;
50
56
}
51
57
return false ;
You can’t perform that action at this time.
0 commit comments