summaryrefslogtreecommitdiff
path: root/node_modules/semver/classes/semver.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/semver/classes/semver.js')
-rw-r--r--node_modules/semver/classes/semver.js28
1 files changed, 20 insertions, 8 deletions
diff --git a/node_modules/semver/classes/semver.js b/node_modules/semver/classes/semver.js
index 20eb089..25ee889 100644
--- a/node_modules/semver/classes/semver.js
+++ b/node_modules/semver/classes/semver.js
@@ -16,7 +16,7 @@ class SemVer {
version = version.version
}
} else if (typeof version !== 'string') {
- throw new TypeError(`Invalid Version: ${version}`)
+ throw new TypeError(`Invalid Version: ${require('util').inspect(version)}`)
}
if (version.length > MAX_LENGTH) {
@@ -246,9 +246,15 @@ class SemVer {
break
// This probably shouldn't be used publicly.
// 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
- case 'pre':
+ case 'pre': {
+ const base = Number(identifierBase) ? 1 : 0
+
+ if (!identifier && identifierBase === false) {
+ throw new Error('invalid increment argument: identifier is empty')
+ }
+
if (this.prerelease.length === 0) {
- this.prerelease = [0]
+ this.prerelease = [base]
} else {
let i = this.prerelease.length
while (--i >= 0) {
@@ -259,23 +265,29 @@ class SemVer {
}
if (i === -1) {
// didn't increment anything
- this.prerelease.push(0)
+ if (identifier === this.prerelease.join('.') && identifierBase === false) {
+ throw new Error('invalid increment argument: identifier already exists')
+ }
+ this.prerelease.push(base)
}
}
if (identifier) {
- const base = Number(identifierBase) ? 1 : 0
// 1.2.0-beta.1 bumps to 1.2.0-beta.2,
// 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
+ let prerelease = [identifier, base]
+ if (identifierBase === false) {
+ prerelease = [identifier]
+ }
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
if (isNaN(this.prerelease[1])) {
- this.prerelease = [identifier, base]
+ this.prerelease = prerelease
}
} else {
- this.prerelease = [identifier, base]
+ this.prerelease = prerelease
}
}
break
-
+ }
default:
throw new Error(`invalid increment argument: ${release}`)
}