aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
36 lines • 4.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.rangeFromSemver = rangeFromSemver;
const semver = require("semver");
const error_1 = require("../toolkit/error");
function rangeFromSemver(ver, targetType) {
const re = ver.match(/^([^\d]*)([\d.]*)$/);
if (!re || !semver.valid(re[2])) {
throw new error_1.ToolkitError('not a semver or unsupported range syntax');
}
const prefixPart = re[1];
const verPart = re[2];
switch (targetType) {
case 'bracket':
switch (prefixPart) {
case '':
// if there's no prefix and the remaining is a valid semver, there's no range specified
return ver;
case '^':
return `[${verPart},${semver.major(verPart) + 1}.0.0)`;
default:
throw new error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
}
case 'pep':
switch (prefixPart) {
case '':
// if there's no prefix and the remaining is a valid semver, there's no range specified
return `==${ver}`;
case '^':
return `>=${verPart},<${semver.major(verPart) + 1}.0.0`;
default:
throw new error_1.ToolkitError(`unsupported range syntax - ${prefixPart}`);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0ErQkM7QUF0Q0QsaUNBQWlDO0FBQ2pDLDRDQUFnRDtBQU1oRCxTQUFnQixlQUFlLENBQUMsR0FBVyxFQUFFLFVBQXFCO0lBQ2hFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxvQkFBWSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEIsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksb0JBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksb0JBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUVILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvZXJyb3InO1xuXG4vLyBicmFja2V0IC0gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vbWlkZGxld2FyZS8xMjEyL2NvcmUvTUFWRU4vbWF2ZW5fdmVyc2lvbi5odG0jTUFWRU40MDFcbi8vIHBlcCAtIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0NDAvI3ZlcnNpb24tc3BlY2lmaWVyc1xuZXhwb3J0IHR5cGUgUmFuZ2VUeXBlID0gJ2JyYWNrZXQnIHwgJ3BlcCdcblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlRnJvbVNlbXZlcih2ZXI6IHN0cmluZywgdGFyZ2V0VHlwZTogUmFuZ2VUeXBlKSB7XG4gIGNvbnN0IHJlID0gdmVyLm1hdGNoKC9eKFteXFxkXSopKFtcXGQuXSopJC8pO1xuICBpZiAoIXJlIHx8ICFzZW12ZXIudmFsaWQocmVbMl0pKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignbm90IGEgc2VtdmVyIG9yIHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCcpO1xuICB9XG4gIGNvbnN0IHByZWZpeFBhcnQgPSByZVsxXTtcbiAgY29uc3QgdmVyUGFydCA9IHJlWzJdO1xuXG4gIHN3aXRjaCAodGFyZ2V0VHlwZSkge1xuICAgIGNhc2UgJ2JyYWNrZXQnOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIHZlcjtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGBbJHt2ZXJQYXJ0fSwke3NlbXZlci5tYWpvcih2ZXJQYXJ0KSsxfS4wLjApYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAncGVwJzpcbiAgICAgIHN3aXRjaCAocHJlZml4UGFydCkge1xuICAgICAgICBjYXNlICcnOlxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gcHJlZml4IGFuZCB0aGUgcmVtYWluaW5nIGlzIGEgdmFsaWQgc2VtdmVyLCB0aGVyZSdzIG5vIHJhbmdlIHNwZWNpZmllZFxuICAgICAgICAgIHJldHVybiBgPT0ke3Zlcn1gO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYD49JHt2ZXJQYXJ0fSw8JHtzZW12ZXIubWFqb3IodmVyUGFydCkrMX0uMC4wYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gIH1cblxufVxuIl19