min-satisfying.js 591 B

1234567891011121314151617181920212223242526
  1. 'use strict'
  2. const SemVer = require('../classes/semver')
  3. const Range = require('../classes/range')
  4. const minSatisfying = (versions, range, options) => {
  5. let min = null
  6. let minSV = 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 (!min || minSV.compare(v) === 1) {
  17. // compare(min, v, true)
  18. min = v
  19. minSV = new SemVer(min, options)
  20. }
  21. }
  22. })
  23. return min
  24. }
  25. module.exports = minSatisfying