35 lines
733 B
JavaScript
35 lines
733 B
JavaScript
"use strict";
|
|
|
|
require("core-js/modules/es.array.for-each");
|
|
|
|
require("core-js/modules/web.dom-collections.for-each");
|
|
|
|
var SemVer = require('../classes/semver');
|
|
|
|
var Range = require('../classes/range');
|
|
|
|
var minSatisfying = function minSatisfying(versions, range, options) {
|
|
var min = null;
|
|
var minSV = null;
|
|
var rangeObj = null;
|
|
|
|
try {
|
|
rangeObj = new Range(range, options);
|
|
} catch (er) {
|
|
return null;
|
|
}
|
|
|
|
versions.forEach(function (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; |