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