cnpmcore
Version:
76 lines • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqlRange = void 0;
const semver_1 = require("semver");
const PaddingSemVer_1 = require("./PaddingSemVer");
const OPERATOR_MAP = {
'<': '$lt',
'<=': '$lte',
'>': '$gt',
'>=': '$gte',
'': '$eq',
};
class SqlRange {
constructor(range) {
this.range = new semver_1.Range(range);
this._containPreRelease = false;
this.condition = this.generateWhere();
}
comparatorToSql(comparator) {
if (comparator.semver === semver_1.Comparator.ANY) {
return {
$and: [
{
isPreRelease: {
$lte: 0,
},
},
{
paddingVersion: {
$gte: PaddingSemVer_1.PaddingSemVer.anyVersion(),
},
},
],
};
}
const paddingSemver = new PaddingSemVer_1.PaddingSemVer(comparator.semver);
const operator = OPERATOR_MAP[comparator.operator];
if (!operator) {
throw new Error(`unknown operator ${comparator.operator}`);
}
this._containPreRelease = this._containPreRelease || paddingSemver.isPreRelease;
return {
$and: [
{
isPreRelease: {
$lte: paddingSemver.isPreRelease ? 1 : 0,
},
},
{
paddingVersion: {
[operator]: paddingSemver.paddingVersion,
},
},
],
};
}
comparatorSetToSql(comparatorSet) {
const condition = [];
for (const comparator of comparatorSet) {
condition.push(this.comparatorToSql(comparator));
}
return { $and: condition };
}
generateWhere() {
const conditions = [];
for (const rangeSet of this.range.set) {
conditions.push(this.comparatorSetToSql(rangeSet));
}
return { $or: conditions };
}
get containPreRelease() {
return this._containPreRelease;
}
}
exports.SqlRange = SqlRange;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsUmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9lbnRpdHkvU3FsUmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTJDO0FBQzNDLG1EQUFnRDtBQUVoRCxNQUFNLFlBQVksR0FBRztJQUNuQixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxLQUFLO0NBQ1YsQ0FBQztBQUVGLE1BQWEsUUFBUTtJQUtuQixZQUFZLEtBQXFCO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxjQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQXNCO1FBQzVDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBTSxtQkFBa0IsQ0FBQyxHQUFHLEVBQUU7WUFDakQsT0FBTztnQkFDTCxJQUFJLEVBQUU7b0JBQ0o7d0JBQ0UsWUFBWSxFQUFFOzRCQUNaLElBQUksRUFBRSxDQUFDO3lCQUNSO3FCQUNGO29CQUNEO3dCQUNFLGNBQWMsRUFBRTs0QkFDZCxJQUFJLEVBQUUsNkJBQWEsQ0FBQyxVQUFVLEVBQUU7eUJBQ2pDO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSw2QkFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQXFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDNUQ7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDaEYsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSjtvQkFDRSxZQUFZLEVBQUU7d0JBQ1osSUFBSSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsY0FBYyxFQUFFO3dCQUNkLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLGNBQWM7cUJBQ3pDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUFDLGFBQWdDO1FBQ3pELE1BQU0sU0FBUyxHQUFrQixFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxhQUFhLEVBQUU7WUFDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUF3QixDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQXJFRCw0QkFxRUMifQ==