• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1const SemVer = require('../classes/semver')
2const Range = require('../classes/range')
3
4const 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      // satisfies(v, range, options)
16      if (!max || maxSV.compare(v) === -1) {
17        // compare(max, v, true)
18        max = v
19        maxSV = new SemVer(max, options)
20      }
21    }
22  })
23  return max
24}
25module.exports = maxSatisfying
26