Skip to content

Commit 2798304

Browse files
committed
feat!: tag => prerelease and use semver (#20)
1 parent dc42613 commit 2798304

File tree

4 files changed

+5
-11
lines changed

4 files changed

+5
-11
lines changed

index.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ interface VersionInfo {
1010
major: number;
1111
minor: number;
1212
patch: number;
13-
tag: string;
13+
prerelease?: string[];
1414
codename: string;
1515
versionName: string;
1616
start?: Date;

index.js

+2-8
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,9 @@ async function getLatestVersionsByCodename (now, cache, mirror) {
8181
const lts = {}
8282

8383
const aliases = versions.reduce((obj, ver) => {
84-
const { major, minor, patch, tag } = splitVersion(ver.version)
84+
const { version, major, minor, patch, prerelease } = semver.parse(ver.version)
8585
const versionName = major !== '0' ? `v${major}` : `v${major}.${minor}`
8686
const codename = ver.lts ? ver.lts.toLowerCase() : versionName
87-
const version = tag !== '' ? `${major}.${minor}.${patch}-${tag}` : `${major}.${minor}.${patch}`
8887
const s = schedule[versionName]
8988

9089
// Version Object
@@ -93,7 +92,7 @@ async function getLatestVersionsByCodename (now, cache, mirror) {
9392
major,
9493
minor,
9594
patch,
96-
tag,
95+
prerelease,
9796
codename,
9897
versionName,
9998
start: s && s.start && new Date(s.start),
@@ -186,8 +185,3 @@ async function getLatestVersionsByCodename (now, cache, mirror) {
186185

187186
return aliases
188187
}
189-
190-
function splitVersion (ver) {
191-
const [, major, minor, patch, tag] = /^v([0-9]*)\.([0-9]*)\.([0-9]*)(?:-([0-9A-Za-z-_]+))?/.exec(ver).map((n, i) => i < 4 ? parseInt(n, 10) : n || '')
192-
return { major, minor, patch, tag }
193-
}

index.test-d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import assert from 'node:assert'
77
assert(versions[0].major)
88
assert(versions[0].minor)
99
assert(versions[0].patch)
10-
assert(versions[0].tag)
10+
assert(!versions[0].prerelease)
1111
assert(versions[0].codename)
1212
assert(versions[0].versionName)
1313
assert(versions[0].start)

test/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ suite('nv', () => {
162162
assert.strictEqual(versions[0].major, 13)
163163
assert.strictEqual(versions[0].minor, 0)
164164
assert.strictEqual(versions[0].patch, 0)
165-
assert.strictEqual(versions[0].tag, 'v8-canary20191022e5d3472f57')
165+
assert.deepStrictEqual(versions[0].prerelease, ['v8-canary20191022e5d3472f57'])
166166
assert.strictEqual(versions[0].versionName, 'v13')
167167
})
168168

0 commit comments

Comments
 (0)