Skip to content

Commit fda7e36

Browse files
committed
feat: removed Disable Prerelease Identifier Base, now using false in Prerelease Identifier Base parameter
1 parent 0c69881 commit fda7e36

File tree

7 files changed

+49
-91
lines changed

7 files changed

+49
-91
lines changed

README.md

+8-11
Original file line numberDiff line numberDiff line change
@@ -239,32 +239,29 @@ $ semver 1.2.4-beta.0 -i prerelease
239239

240240
The method `.inc` takes an optional parameter 'identifierBase' string
241241
that will let you let your prerelease number as zero-based or one-based.
242+
If you provide false zero will be omitted.
242243
If you do not specify this parameter, it will default to zero-based.
243244

244245
```javascript
245246
semver.inc('1.2.3', 'prerelease', 'beta', '1')
246247
// '1.2.4-beta.1'
247248
```
248249

250+
```javascript
251+
semver.inc('1.2.3', 'prerelease', 'beta', false)
252+
// '1.2.4-beta'
253+
```
254+
249255
command-line example:
250256

251257
```bash
252258
$ semver 1.2.3 -i prerelease --preid beta -n 1
253259
1.2.4-beta.1
254260
```
255261

256-
#### Disable Prerelease Identifier Base
257-
when this flag is set to true initial prerelease identifier base is disabled.
258-
259-
```javascript
260-
semver.inc('1.2.3', 'prerelease', { disableIdentifierBase: true } , 'beta')
261-
// '1.2.4-beta'
262-
```
263-
264-
command-line example:
265262
```bash
266-
$ semver 1.2.3 -i prerelease --preid beta -noidbase
267-
# 1.2.4-beta
263+
$ semver 1.2.3 -i prerelease --preid beta -n false
264+
1.2.4-beta
268265
```
269266

270267

bin/semver.js

+3-14
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ let identifier
2525

2626
let identifierBase
2727

28-
let disableIdentifierBase
29-
3028
const semver = require('../')
3129
const parseOptions = require('../internal/parse-options')
3230

@@ -79,9 +77,6 @@ const main = () => {
7977
case '-n':
8078
identifierBase = argv.shift()
8179
break
82-
case '--noidbase':
83-
disableIdentifierBase = true
84-
break
8580
case '-c': case '--coerce':
8681
coerce = true
8782
break
@@ -99,7 +94,7 @@ const main = () => {
9994
}
10095
}
10196

102-
options = parseOptions({ loose, includePrerelease, rtl, disableIdentifierBase })
97+
options = parseOptions({ loose, includePrerelease, rtl })
10398

10499
versions = versions.map((v) => {
105100
return coerce ? (semver.coerce(v, options) || { version: v }).version : v
@@ -186,15 +181,9 @@ Options:
186181
-n <base>
187182
Prerelease Identifier Base
188183
that will let you let your prerelease number as
189-
zero-based or one-based.If you do not specify
184+
zero-based or one-based. If you provide false
185+
zero will be omitted. If you do not specify
190186
this parameter, it will default to zero-based.
191-
192-
--noidbase
193-
Disable Identifier Base
194-
when this flag is set to true initial prerelease
195-
identifier base is disabled, if another version
196-
is created with same identifier then the prerelease
197-
number is used based on Prerelease Identifier Base
198187
199188
Program exits successfully if any valid version satisfies
200189
all supplied ranges, and prints all satisfying versions.

classes/semver.js

+10-12
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,10 @@ class SemVer {
247247
// This probably shouldn't be used publicly.
248248
// 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
249249
case 'pre': {
250-
const base = Number(identifierBase) ? 1 : 0
250+
const base = identifierBase === false ||
251+
identifierBase === 'false' ||
252+
Number(identifierBase) ? 1 : 0
253+
251254
if (this.prerelease.length === 0) {
252255
this.prerelease = [base]
253256
} else {
@@ -266,21 +269,16 @@ class SemVer {
266269
if (identifier) {
267270
// 1.2.0-beta.1 bumps to 1.2.0-beta.2,
268271
// 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
272+
let prerelease = [identifier, base]
273+
if (identifierBase === false || identifierBase === 'false') {
274+
prerelease = [identifier]
275+
}
269276
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
270277
if (isNaN(this.prerelease[1])) {
271-
if (this.options.disableIdentifierBase) {
272-
this.prerelease = [identifier]
273-
} else {
274-
this.prerelease = [identifier, base]
275-
}
278+
this.prerelease = prerelease
276279
}
277280
} else {
278-
this.prerelease = [identifier, base]
279-
if (this.options.disableIdentifierBase) {
280-
this.prerelease = [identifier]
281-
} else {
282-
this.prerelease = [identifier, base]
283-
}
281+
this.prerelease = prerelease
284282
}
285283
}
286284
break

tap-snapshots/test/bin/semver.js.test.cjs

+9-33
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,9 @@ Object {
9696
-n <base>
9797
Prerelease Identifier Base
9898
that will let you let your prerelease number as
99-
zero-based or one-based.If you do not specify
99+
zero-based or one-based. If you provide false
100+
zero will be omitted. If you do not specify
100101
this parameter, it will default to zero-based.
101-
102-
--noidbase
103-
Disable Identifier Base
104-
when this flag is set to true initial prerelease
105-
identifier base is disabled, if another version
106-
is created with same identifier then the prerelease
107-
number is used based on Prerelease Identifier Base
108102
109103
Program exits successfully if any valid version satisfies
110104
all supplied ranges, and prints all satisfying versions.
@@ -165,15 +159,9 @@ Object {
165159
-n <base>
166160
Prerelease Identifier Base
167161
that will let you let your prerelease number as
168-
zero-based or one-based.If you do not specify
162+
zero-based or one-based. If you provide false
163+
zero will be omitted. If you do not specify
169164
this parameter, it will default to zero-based.
170-
171-
--noidbase
172-
Disable Identifier Base
173-
when this flag is set to true initial prerelease
174-
identifier base is disabled, if another version
175-
is created with same identifier then the prerelease
176-
number is used based on Prerelease Identifier Base
177165
178166
Program exits successfully if any valid version satisfies
179167
all supplied ranges, and prints all satisfying versions.
@@ -234,15 +222,9 @@ Object {
234222
-n <base>
235223
Prerelease Identifier Base
236224
that will let you let your prerelease number as
237-
zero-based or one-based.If you do not specify
225+
zero-based or one-based. If you provide false
226+
zero will be omitted. If you do not specify
238227
this parameter, it will default to zero-based.
239-
240-
--noidbase
241-
Disable Identifier Base
242-
when this flag is set to true initial prerelease
243-
identifier base is disabled, if another version
244-
is created with same identifier then the prerelease
245-
number is used based on Prerelease Identifier Base
246228
247229
Program exits successfully if any valid version satisfies
248230
all supplied ranges, and prints all satisfying versions.
@@ -303,15 +285,9 @@ Object {
303285
-n <base>
304286
Prerelease Identifier Base
305287
that will let you let your prerelease number as
306-
zero-based or one-based.If you do not specify
288+
zero-based or one-based. If you provide false
289+
zero will be omitted. If you do not specify
307290
this parameter, it will default to zero-based.
308-
309-
--noidbase
310-
Disable Identifier Base
311-
when this flag is set to true initial prerelease
312-
identifier base is disabled, if another version
313-
is created with same identifier then the prerelease
314-
number is used based on Prerelease Identifier Base
315291
316292
Program exits successfully if any valid version satisfies
317293
all supplied ranges, and prints all satisfying versions.
@@ -362,7 +338,7 @@ Object {
362338
}
363339
`
364340

365-
exports[`test/bin/semver.js TAP inc tests > -i premajor 1.0.0 --preid=beta --noidbase 1`] = `
341+
exports[`test/bin/semver.js TAP inc tests > -i premajor 1.0.0 --preid=beta -n false 1`] = `
366342
Object {
367343
"code": 0,
368344
"err": "",

test/bin/semver.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ t.test('inc tests', t => Promise.all([
2929
['-i', 'major', '1.0.0'],
3030
['-i', 'major', '1.0.0', '1.0.1'],
3131
['-i', 'premajor', '1.0.0', '--preid=beta', '-n', '1'],
32-
['-i', 'premajor', '1.0.0', '--preid=beta', '--noidbase'],
32+
['-i', 'premajor', '1.0.0', '--preid=beta', '-n', 'false'],
3333
['-i', '1.2.3'],
3434
].map(args => t.resolveMatchSnapshot(run(args), args.join(' ')))))
3535

test/fixtures/increments.js

+14-16
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,18 @@ module.exports = [
102102
['1.2.0', 'preminor', '1.3.0-dev.1', false, 'dev', '1'],
103103
['1.2.3-1', 'preminor', '1.3.0-dev.0', false, 'dev'],
104104

105-
// disableIdentifierBase
106-
['1.2.0-1', 'prerelease', '1.2.0-alpha', { disableIdentifierBase: true }, 'alpha', '0'],
107-
['1.2.1', 'prerelease', '1.2.2-alpha', { disableIdentifierBase: true }, 'alpha', '0'],
108-
['1.2.2', 'prerelease', '1.2.3-alpha', { disableIdentifierBase: true }, 'alpha', '1'],
109-
['1.2.0', 'prepatch', '1.2.1-dev', { disableIdentifierBase: true }, 'dev', '1'],
110-
['1.2.0-1', 'prepatch', '1.2.1-dev', { disableIdentifierBase: true }, 'dev', '1'],
111-
['1.2.0', 'premajor', '2.0.0-dev', { disableIdentifierBase: true }, 'dev', '0'],
112-
['1.2.3-1', 'premajor', '2.0.0-dev', { disableIdentifierBase: true }, 'dev', '0'],
113-
['1.2.3-dev.bar', 'prerelease', '1.2.3-dev', { disableIdentifierBase: true }, 'dev', '0'],
114-
['1.2.0', 'preminor', '1.3.0-dev', { disableIdentifierBase: true }, 'dev', '1'],
115-
['1.2.3-1', 'preminor', '1.3.0-dev', { disableIdentifierBase: true }, 'dev'],
116-
['1.2.3-dev', 'prerelease', '1.2.3-dev.0', { disableIdentifierBase: true }, 'dev', '0'],
117-
['1.2.3-dev', 'prerelease', '1.2.3-dev.1', { disableIdentifierBase: true }, 'dev', '1'],
118-
['1.2.0-dev', 'premajor', '2.0.0-dev', { disableIdentifierBase: true }, 'dev', '0'],
119-
['1.2.0-dev', 'preminor', '1.3.0-beta', { disableIdentifierBase: true }, 'beta', '1'],
120-
['1.2.0-dev', 'prepatch', '1.2.1-dev', { disableIdentifierBase: true }, 'dev', '1'],
105+
['1.2.0-1', 'prerelease', '1.2.0-alpha', false, 'alpha', false],
106+
['1.2.1', 'prerelease', '1.2.2-alpha', false, 'alpha', false],
107+
['1.2.2', 'prerelease', '1.2.3-alpha', false, 'alpha', false],
108+
['1.2.0', 'prepatch', '1.2.1-dev', false, 'dev', false],
109+
['1.2.0-1', 'prepatch', '1.2.1-dev', false, 'dev', false],
110+
['1.2.0', 'premajor', '2.0.0-dev', false, 'dev', false],
111+
['1.2.3-1', 'premajor', '2.0.0-dev', false, 'dev', false],
112+
['1.2.3-dev.bar', 'prerelease', '1.2.3-dev', false, 'dev', false],
113+
['1.2.0', 'preminor', '1.3.0-dev', false, 'dev', false],
114+
['1.2.3-1', 'preminor', '1.3.0-dev', false, 'dev', false],
115+
['1.2.3-dev', 'prerelease', '1.2.3-dev.1', false, 'dev', false],
116+
['1.2.0-dev', 'premajor', '2.0.0-dev', false, 'dev', false],
117+
['1.2.0-dev', 'preminor', '1.3.0-beta', false, 'beta', false],
118+
['1.2.0-dev', 'prepatch', '1.2.1-dev', false, 'dev', false],
121119
]

test/internal/parse-options.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ t.test('any object passed is returned', t => {
3535
loose: true,
3636
includePrerelease: true,
3737
})
38-
t.strictSame(parseOptions({ disableIdentifierBase: true }), {
39-
disableIdentifierBase: true,
38+
t.strictSame(parseOptions({ initialIdentifierBase: true }), {
39+
initialIdentifierBase: true,
4040
})
41-
t.strictSame(parseOptions({ rtl: true, includePrerelease: true, disableIdentifierBase: true }), {
41+
t.strictSame(parseOptions({ rtl: true, includePrerelease: true, initialIdentifierBase: true }), {
4242
rtl: true,
4343
includePrerelease: true,
44-
disableIdentifierBase: true,
44+
initialIdentifierBase: true,
4545
})
4646
t.end()
4747
})

0 commit comments

Comments
 (0)