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