11import commandLine from '../../services/command-line' ;
22
3+ function matchVersions ( v : string ) : string [ ] {
4+ return v . match ( / ( [ 0 - 9 ] + ) \. ( [ 0 - 9 ] + ) / ) ;
5+ }
6+
37function minVersion ( command : string , minVersion : string ) : Promise < boolean > {
48 return new Promise ( ( resolve , reject ) => {
59 let minOrLater : Promise < boolean > = commandLine ( command , '-v' )
@@ -9,13 +13,13 @@ function minVersion(command: string, minVersion: string): Promise<boolean> {
913 return false ;
1014 }
1115 // 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 ) ;
1721 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 ) ;
1923 } else {
2024 // single digit, ex: 3.0
2125 return parseInt ( res , 10 ) >= parseInt ( minVersion , 10 ) ;
0 commit comments