UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

73 lines 4.72 kB
import { Comparator, Range } from 'semver'; import { PaddingSemVer } from "./PaddingSemVer.js"; const OPERATOR_MAP = { '<': '$lt', '<=': '$lte', '>': '$gt', '>=': '$gte', '': '$eq', }; export class SqlRange { constructor(range) { this.range = new Range(range); this._containPreRelease = false; this.condition = this.generateWhere(); } comparatorToSql(comparator) { // @ts-expect-error type definition is not correct if (comparator.semver === Comparator.ANY) { return { $and: [ { isPreRelease: { $lte: 0, }, }, { paddingVersion: { $gte: PaddingSemVer.anyVersion(), }, }, ], }; } const paddingSemver = new 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; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsUmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvY29yZS9lbnRpdHkvU3FsUmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sWUFBWSxHQUFHO0lBQ25CLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osRUFBRSxFQUFFLEtBQUs7Q0FDVixDQUFDO0FBRUYsTUFBTSxPQUFPLFFBQVE7SUFLbkIsWUFBWSxLQUFxQjtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxVQUFzQjtRQUM1QyxrREFBa0Q7UUFDbEQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxPQUFPO2dCQUNMLElBQUksRUFBRTtvQkFDSjt3QkFDRSxZQUFZLEVBQUU7NEJBQ1osSUFBSSxFQUFFLENBQUM7eUJBQ1I7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsY0FBYyxFQUFFOzRCQUNkLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxFQUFFO3lCQUNqQztxQkFDRjtpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBcUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDaEYsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSjtvQkFDRSxZQUFZLEVBQUU7d0JBQ1osSUFBSSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsY0FBYyxFQUFFO3dCQUNkLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLGNBQWM7cUJBQ3pDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUFDLGFBQTJCO1FBQ3BELE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUMvQixLQUFLLE1BQU0sVUFBVSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBd0IsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7Q0FDRiJ9