Buckets:
| const SemVer = require('../classes/semver') | |
| const Range = require('../classes/range') | |
| const gt = require('../functions/gt') | |
| const minVersion = (range, loose) => { | |
| range = new Range(range, loose) | |
| let minver = new SemVer('0.0.0') | |
| if (range.test(minver)) { | |
| return minver | |
| } | |
| minver = new SemVer('0.0.0-0') | |
| if (range.test(minver)) { | |
| return minver | |
| } | |
| minver = null | |
| for (let i = 0; i < range.set.length; ++i) { | |
| const comparators = range.set[i] | |
| let setMin = null | |
| comparators.forEach((comparator) => { | |
| // Clone to avoid manipulating the comparator's semver object. | |
| const compver = new SemVer(comparator.semver.version) | |
| switch (comparator.operator) { | |
| case '>': | |
| if (compver.prerelease.length === 0) { | |
| compver.patch++ | |
| } else { | |
| compver.prerelease.push(0) | |
| } | |
| compver.raw = compver.format() | |
| /* fallthrough */ | |
| case '': | |
| case '>=': | |
| if (!setMin || gt(compver, setMin)) { | |
| setMin = compver | |
| } | |
| break | |
| case '<': | |
| case '<=': | |
| /* Ignore maximum versions */ | |
| break | |
| /* istanbul ignore next */ | |
| default: | |
| throw new Error(`Unexpected operation: ${comparator.operator}`) | |
| } | |
| }) | |
| if (setMin && (!minver || gt(minver, setMin))) { | |
| minver = setMin | |
| } | |
| } | |
| if (minver && range.test(minver)) { | |
| return minver | |
| } | |
| return null | |
| } | |
| module.exports = minVersion | |
Xet Storage Details
- Size:
- 1.51 kB
- Xet hash:
- a70525c654a1644a880571703a96655b0976f0cf0d8bdf83d9d60cd647cbd5a3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.