1
1
import commandLine from '../../services/command-line' ;
2
2
3
+ function matchVersions ( v : string ) : string [ ] {
4
+ return v . match ( / ( [ 0 - 9 ] + ) \. ( [ 0 - 9 ] + ) / ) ;
5
+ }
6
+
3
7
function minVersion ( command : string , minVersion : string ) : Promise < boolean > {
4
8
return new Promise ( ( resolve , reject ) => {
5
9
let minOrLater : Promise < boolean > = commandLine ( command , '-v' )
@@ -9,13 +13,13 @@ function minVersion(command: string, minVersion: string): Promise<boolean> {
9
13
return false ;
10
14
}
11
15
// two digits, ex: 0.10
12
- let hasSecondDigit = res . match ( / ( [ 0 - 9 ] + ) \. ( [ 0 - 9 ] + ) / ) ;
13
- if ( ! ! hasSecondDigit ) {
14
- let versions = minVersion . match ( / ( [ 0 - 9 ] + ) \. ( [ 0 - 9 ] + ) / ) ;
15
- let firstDigit = parseInt ( hasSecondDigit [ 1 ] , 10 ) ;
16
- let firstVersion = parseInt ( versions [ 1 ] , 10 ) ;
16
+ let mins = matchVersions ( minVersion ) ;
17
+ if ( ! ! mins ) {
18
+ let resMins = matchVersions ( res ) ;
19
+ let firstDigit = parseInt ( resMins [ 1 ] , 10 ) ;
20
+ let firstVersion = parseInt ( mins [ 1 ] , 10 ) ;
17
21
return firstDigit > firstVersion ||
18
- firstDigit === firstVersion && parseInt ( hasSecondDigit [ 2 ] , 10 ) >= parseInt ( firstVersion [ 2 ] , 10 ) ;
22
+ firstDigit === firstVersion && parseInt ( resMins [ 2 ] , 10 ) >= parseInt ( firstVersion [ 2 ] , 10 ) ;
19
23
} else {
20
24
// single digit, ex: 3.0
21
25
return parseInt ( res , 10 ) >= parseInt ( minVersion , 10 ) ;
0 commit comments