UNPKG

cnpmcore

Version:
76 lines 4.7 kB
"use strict"; 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==