semver-range-intersect
Version:
Get the intersection of multiple semver ranges.
27 lines • 1.06 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const semver_1 = __importDefault(require("semver"));
const multi_range_1 = require("./multi-range");
const utils_1 = require("./utils");
function intersect(...ranges) {
const semverRangeList = (() => {
try {
return ranges.map(rangeStr => new semver_1.default.Range(rangeStr));
}
catch (err) {
return null;
}
})();
if (!semverRangeList || !utils_1.isIntersectRanges(semverRangeList)) {
return null;
}
const intersectRange = semverRangeList
.map(range => new multi_range_1.MultiRange(range.set))
.reduce((multiRangeA, multiRangeB) => multiRangeA.intersect(multiRangeB), new multi_range_1.MultiRange(null));
return intersectRange.valid ? String(intersectRange) || '*' : null;
}
exports.intersect = intersect;
//# sourceMappingURL=index.js.map
;