Skip to content

Commit a4ff4ff

Browse files
pjohnmeyerisaacs
authored andcommitted
Apply 'standard' to bin/semver, add to npm test
1 parent a34ca82 commit a4ff4ff

File tree

2 files changed

+85
-78
lines changed

2 files changed

+85
-78
lines changed

bin/semver

+84-77
Original file line numberDiff line numberDiff line change
@@ -4,66 +4,74 @@
44
// any supplied version is valid and passes all tests.
55

66
var argv = process.argv.slice(2)
7-
, versions = []
8-
, range = []
9-
, gt = []
10-
, lt = []
11-
, eq = []
12-
, inc = null
13-
, version = require("../package.json").version
14-
, loose = false
15-
, includePrerelease = false
16-
, coerce = false
17-
, identifier = undefined
18-
, semver = require("../semver")
19-
, reverse = false
20-
, options = {}
7+
8+
var versions = []
9+
10+
var range = []
11+
12+
var inc = null
13+
14+
var version = require('../package.json').version
15+
16+
var loose = false
17+
18+
var includePrerelease = false
19+
20+
var coerce = false
21+
22+
var identifier
23+
24+
var semver = require('../semver')
25+
26+
var reverse = false
27+
28+
var options = {}
2129

2230
main()
2331

2432
function main () {
2533
if (!argv.length) return help()
2634
while (argv.length) {
2735
var a = argv.shift()
28-
var i = a.indexOf('=')
29-
if (i !== -1) {
30-
a = a.slice(0, i)
31-
argv.unshift(a.slice(i + 1))
36+
var indexOfEqualSign = a.indexOf('=')
37+
if (indexOfEqualSign !== -1) {
38+
a = a.slice(0, indexOfEqualSign)
39+
argv.unshift(a.slice(indexOfEqualSign + 1))
3240
}
3341
switch (a) {
34-
case "-rv": case "-rev": case "--rev": case "--reverse":
42+
case '-rv': case '-rev': case '--rev': case '--reverse':
3543
reverse = true
3644
break
37-
case "-l": case "--loose":
45+
case '-l': case '--loose':
3846
loose = true
3947
break
40-
case "-p": case "--include-prerelease":
48+
case '-p': case '--include-prerelease':
4149
includePrerelease = true
4250
break
43-
case "-v": case "--version":
51+
case '-v': case '--version':
4452
versions.push(argv.shift())
4553
break
46-
case "-i": case "--inc": case "--increment":
54+
case '-i': case '--inc': case '--increment':
4755
switch (argv[0]) {
48-
case "major": case "minor": case "patch": case "prerelease":
49-
case "premajor": case "preminor": case "prepatch":
56+
case 'major': case 'minor': case 'patch': case 'prerelease':
57+
case 'premajor': case 'preminor': case 'prepatch':
5058
inc = argv.shift()
5159
break
5260
default:
53-
inc = "patch"
61+
inc = 'patch'
5462
break
5563
}
5664
break
57-
case "--preid":
65+
case '--preid':
5866
identifier = argv.shift()
5967
break
60-
case "-r": case "--range":
68+
case '-r': case '--range':
6169
range.push(argv.shift())
6270
break
63-
case "-c": case "--coerce":
71+
case '-c': case '--coerce':
6472
coerce = true
6573
break
66-
case "-h": case "--help": case "-?":
74+
case '-h': case '--help': case '-?':
6775
return help()
6876
default:
6977
versions.push(a)
@@ -74,15 +82,14 @@ function main () {
7482
var options = { loose: loose, includePrerelease: includePrerelease }
7583

7684
versions = versions.map(function (v) {
77-
return coerce ? (semver.coerce(v) || {version: v}).version : v
85+
return coerce ? (semver.coerce(v) || { version: v }).version : v
7886
}).filter(function (v) {
7987
return semver.valid(v)
8088
})
8189
if (!versions.length) return fail()
82-
if (inc && (versions.length !== 1 || range.length))
83-
return failInc()
90+
if (inc && (versions.length !== 1 || range.length)) { return failInc() }
8491

85-
for (var i = 0, l = range.length; i < l ; i ++) {
92+
for (var i = 0, l = range.length; i < l; i++) {
8693
versions = versions.filter(function (v) {
8794
return semver.satisfies(v, range[i], options)
8895
})
@@ -92,62 +99,62 @@ function main () {
9299
}
93100

94101
function failInc () {
95-
console.error("--inc can only be used on a single version with no range")
102+
console.error('--inc can only be used on a single version with no range')
96103
fail()
97104
}
98105

99106
function fail () { process.exit(1) }
100107

101108
function success () {
102-
var compare = reverse ? "rcompare" : "compare"
109+
var compare = reverse ? 'rcompare' : 'compare'
103110
versions.sort(function (a, b) {
104111
return semver[compare](a, b, options)
105112
}).map(function (v) {
106113
return semver.clean(v, options)
107114
}).map(function (v) {
108115
return inc ? semver.inc(v, inc, options, identifier) : v
109-
}).forEach(function (v,i,_) { console.log(v) })
116+
}).forEach(function (v, i, _) { console.log(v) })
110117
}
111118

112119
function help () {
113-
console.log(["SemVer " + version
114-
,""
115-
,"A JavaScript implementation of the http://semver.org/ specification"
116-
,"Copyright Isaac Z. Schlueter"
117-
,""
118-
,"Usage: semver [options] <version> [<version> [...]]"
119-
,"Prints valid versions sorted by SemVer precedence"
120-
,""
121-
,"Options:"
122-
,"-r --range <range>"
123-
," Print versions that match the specified range."
124-
,""
125-
,"-i --increment [<level>]"
126-
," Increment a version by the specified level. Level can"
127-
," be one of: major, minor, patch, premajor, preminor,"
128-
," prepatch, or prerelease. Default level is 'patch'."
129-
," Only one version may be specified."
130-
,""
131-
,"--preid <identifier>"
132-
," Identifier to be used to prefix premajor, preminor,"
133-
," prepatch or prerelease version increments."
134-
,""
135-
,"-l --loose"
136-
," Interpret versions and ranges loosely"
137-
,""
138-
,"-p --include-prerelease"
139-
," Always include prerelease versions in range matching"
140-
,""
141-
,"-c --coerce"
142-
," Coerce a string into SemVer if possible"
143-
," (does not imply --loose)"
144-
,""
145-
,"Program exits successfully if any valid version satisfies"
146-
,"all supplied ranges, and prints all satisfying versions."
147-
,""
148-
,"If no satisfying versions are found, then exits failure."
149-
,""
150-
,"Versions are printed in ascending order, so supplying"
151-
,"multiple versions to the utility will just sort them."
152-
].join("\n"))
120+
console.log(['SemVer ' + version,
121+
'',
122+
'A JavaScript implementation of the http://semver.org/ specification',
123+
'Copyright Isaac Z. Schlueter',
124+
'',
125+
'Usage: semver [options] <version> [<version> [...]]',
126+
'Prints valid versions sorted by SemVer precedence',
127+
'',
128+
'Options:',
129+
'-r --range <range>',
130+
' Print versions that match the specified range.',
131+
'',
132+
'-i --increment [<level>]',
133+
' Increment a version by the specified level. Level can',
134+
' be one of: major, minor, patch, premajor, preminor,',
135+
" prepatch, or prerelease. Default level is 'patch'.",
136+
' Only one version may be specified.',
137+
'',
138+
'--preid <identifier>',
139+
' Identifier to be used to prefix premajor, preminor,',
140+
' prepatch or prerelease version increments.',
141+
'',
142+
'-l --loose',
143+
' Interpret versions and ranges loosely',
144+
'',
145+
'-p --include-prerelease',
146+
' Always include prerelease versions in range matching',
147+
'',
148+
'-c --coerce',
149+
' Coerce a string into SemVer if possible',
150+
' (does not imply --loose)',
151+
'',
152+
'Program exits successfully if any valid version satisfies',
153+
'all supplied ranges, and prints all satisfying versions.',
154+
'',
155+
'If no satisfying versions are found, then exits failure.',
156+
'',
157+
'Versions are printed in ascending order, so supplying',
158+
'multiple versions to the utility will just sort them.'
159+
].join('\n'))
153160
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "The semantic version parser used by npm.",
55
"main": "semver.js",
66
"scripts": {
7-
"test": "standard && tap test/*.js --cov -J"
7+
"test": "standard bin/semver *.js **/*.js && tap test/*.js --cov -J"
88
},
99
"devDependencies": {
1010
"standard": "^12.0.1",

0 commit comments

Comments
 (0)