source: frontend/node_modules/semver/ranges/min-version.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[9af201e]1'use strict'
2
3const SemVer = require('../classes/semver')
4const Range = require('../classes/range')
5const gt = require('../functions/gt')
6
7const minVersion = (range, loose) => {
8 range = new Range(range, loose)
9
10 let minver = new SemVer('0.0.0')
11 if (range.test(minver)) {
12 return minver
13 }
14
15 minver = new SemVer('0.0.0-0')
16 if (range.test(minver)) {
17 return minver
18 }
19
20 minver = null
21 for (let i = 0; i < range.set.length; ++i) {
22 const comparators = range.set[i]
23
24 let setMin = null
25 comparators.forEach((comparator) => {
26 // Clone to avoid manipulating the comparator's semver object.
27 const compver = new SemVer(comparator.semver.version)
28 switch (comparator.operator) {
29 case '>':
30 if (compver.prerelease.length === 0) {
31 compver.patch++
32 } else {
33 compver.prerelease.push(0)
34 }
35 compver.raw = compver.format()
36 /* fallthrough */
37 case '':
38 case '>=':
39 if (!setMin || gt(compver, setMin)) {
40 setMin = compver
41 }
42 break
43 case '<':
44 case '<=':
45 /* Ignore maximum versions */
46 break
47 /* istanbul ignore next */
48 default:
49 throw new Error(`Unexpected operation: ${comparator.operator}`)
50 }
51 })
52 if (setMin && (!minver || gt(minver, setMin))) {
53 minver = setMin
54 }
55 }
56
57 if (minver && range.test(minver)) {
58 return minver
59 }
60
61 return null
62}
63module.exports = minVersion
Note: See TracBrowser for help on using the repository browser.