You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
577 B
24 lines
577 B
const SemVer = require('../classes/semver') |
|
const Range = require('../classes/range') |
|
const minSatisfying = (versions, range, options) => { |
|
let min = null |
|
let minSV = null |
|
let rangeObj = null |
|
try { |
|
rangeObj = new Range(range, options) |
|
} catch (er) { |
|
return null |
|
} |
|
versions.forEach((v) => { |
|
if (rangeObj.test(v)) { |
|
// satisfies(v, range, options) |
|
if (!min || minSV.compare(v) === 1) { |
|
// compare(min, v, true) |
|
min = v |
|
minSV = new SemVer(min, options) |
|
} |
|
} |
|
}) |
|
return min |
|
} |
|
module.exports = minSatisfying
|
|
|