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.
25 lines
579 B
25 lines
579 B
const SemVer = require('../classes/semver') |
|
const Range = require('../classes/range') |
|
|
|
const maxSatisfying = (versions, range, options) => { |
|
let max = null |
|
let maxSV = 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 (!max || maxSV.compare(v) === -1) { |
|
// compare(max, v, true) |
|
max = v |
|
maxSV = new SemVer(max, options) |
|
} |
|
} |
|
}) |
|
return max |
|
} |
|
module.exports = maxSatisfying
|
|
|