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