1 | const SemVer = require('../classes/semver')
|
2 | const Range = require('../classes/range')
|
3 | const minSatisfying = (versions, range, options) => {
|
4 | let min = null
|
5 | let minSV = null
|
6 | let rangeObj = null
|
7 | try {
|
8 | rangeObj = new Range(range, options)
|
9 | } catch (er) {
|
10 | return null
|
11 | }
|
12 | versions.forEach((v) => {
|
13 | if (rangeObj.test(v)) {
|
14 |
|
15 | if (!min || minSV.compare(v) === 1) {
|
16 |
|
17 | min = v
|
18 | minSV = new SemVer(min, options)
|
19 | }
|
20 | }
|
21 | })
|
22 | return min
|
23 | }
|
24 | module.exports = minSatisfying
|