File tree 2 files changed +10
-3
lines changed
2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ const minVersion = (range, loose) => {
19
19
for ( let i = 0 ; i < range . set . length ; ++ i ) {
20
20
const comparators = range . set [ i ]
21
21
22
+ let setMin = null
22
23
comparators . forEach ( ( comparator ) => {
23
24
// Clone to avoid manipulating the comparator's semver object.
24
25
const compver = new SemVer ( comparator . semver . version )
@@ -33,8 +34,8 @@ const minVersion = (range, loose) => {
33
34
/* fallthrough */
34
35
case '' :
35
36
case '>=' :
36
- if ( ! minver || gt ( minver , compver ) ) {
37
- minver = compver
37
+ if ( ! setMin || gt ( compver , setMin ) ) {
38
+ setMin = compver
38
39
}
39
40
break
40
41
case '<' :
@@ -46,6 +47,8 @@ const minVersion = (range, loose) => {
46
47
throw new Error ( `Unexpected operation: ${ comparator . operator } ` )
47
48
}
48
49
} )
50
+ if ( setMin && ( ! minver || gt ( minver , setMin ) ) )
51
+ minver = setMin
49
52
}
50
53
51
54
if ( minver && range . test ( minver ) ) {
Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ test('minimum version in range tests', (t) => {
33
33
[ '^1.1.1' , '1.1.1' ] ,
34
34
[ '^1.1.1-beta' , '1.1.1-beta' ] ,
35
35
[ '^1.1.1 || >=2' , '1.1.1' ] ,
36
+ [ '^2.16.2 ^2.16' , '2.16.2' ] ,
36
37
37
38
// '-' operator
38
39
[ '1.1.1 - 1.8.0' , '1.1.1' ] ,
@@ -69,7 +70,10 @@ test('minimum version in range tests', (t) => {
69
70
const loose = tuple [ 2 ] || false
70
71
const msg = `minVersion(${ range } , ${ loose } ) = ${ version } `
71
72
const min = minVersion ( range , loose )
72
- t . ok ( min === version || ( min && min . version === version ) , msg )
73
+ t . ok ( min === version || ( min && min . version === version ) , msg , {
74
+ found : min ,
75
+ wanted : version ,
76
+ } )
73
77
} )
74
78
t . end ( )
75
79
} )
You can’t perform that action at this time.
0 commit comments