@mentor-apm/react-sortable-tree
Version:
Drag-and-drop sortable component for nested data and hierarchies
75 lines (53 loc) • 1.56 kB
JavaScript
;
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 gt = require('../functions/gt');
var minVersion = function minVersion(range, loose) {
range = new Range(range, loose);
var minver = new SemVer('0.0.0');
if (range.test(minver)) {
return minver;
}
minver = new SemVer('0.0.0-0');
if (range.test(minver)) {
return minver;
}
minver = null;
for (var i = 0; i < range.set.length; ++i) {
var comparators = range.set[i];
comparators.forEach(function (comparator) {
// Clone to avoid manipulating the comparator's semver object.
var compver = new SemVer(comparator.semver.version);
switch (comparator.operator) {
case '>':
if (compver.prerelease.length === 0) {
compver.patch++;
} else {
compver.prerelease.push(0);
}
compver.raw = compver.format();
/* fallthrough */
case '':
case '>=':
if (!minver || gt(minver, compver)) {
minver = compver;
}
break;
case '<':
case '<=':
/* Ignore maximum versions */
break;
/* istanbul ignore next */
default:
throw new Error("Unexpected operation: ".concat(comparator.operator));
}
});
}
if (minver && range.test(minver)) {
return minver;
}
return null;
};
module.exports = minVersion;