fix: compatible with more node pre-release versions (#9292)

* fix: compatible with more node pre-release versions

* fix: match prerelease regex

* docs: remove changeset

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
This commit is contained in:
bteaandZoltan Kochan authored and Zoltan Kochan committed 2025-03-17 01:53:48 +01:00
1 parent aec8c50d01
commit 32289be423
2 files changed
+3 -2

No files matched your search

+2 -2
View File
@@ -6,7 +6,7 @@ export interface NodeSpecifier {
}
const isStableVersion = (version: string): boolean => /^\d+\.\d+\.\d+$/.test(version)
const matchPrereleaseVersion = (version: string): RegExpMatchArray | null => version.match(/^\d+\.\d+\.\d+-(nightly|rc|test|v8-canary)(\..+)$/)
const matchPrereleaseVersion = (version: string): RegExpMatchArray | null => version.match(/^\d+\.\d+\.\d+-((rc)(\..+)|(test|v8-canary|nightly)(.+))$/)
const STABLE_RELEASE_ERROR_HINT = 'The correct syntax for stable release is strictly X.Y.Z or release/X.Y.Z'
@@ -43,7 +43,7 @@ export function parseNodeSpecifier (specifier: string): NodeSpecifier {
const prereleaseMatch = matchPrereleaseVersion(specifier)
if (prereleaseMatch != null) {
return { releaseChannel: prereleaseMatch[1], useNodeVersion: specifier }
return { releaseChannel: prereleaseMatch[2], useNodeVersion: specifier }
}
if (isStableVersion(specifier)) {
+1
View File
@@ -49,6 +49,7 @@ test.each([
['16.0.0-rc.0', '16.0.0-rc.0', 'rc'],
['release/16.0.0', '16.0.0', 'release'],
['16.0.0', '16.0.0', 'release'],
['24.0.0-nightly20250315d765e70802', '24.0.0-nightly20250315d765e70802', 'nightly'],
])('valid Node.js specifier', async (specifier) => {
expect(isValidVersion(specifier)).toBe(true)
})