Skip to content

Commit e7c5b9e

Browse files
committed
fix: release versions
1 parent 203b9aa commit e7c5b9e

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

scripts/release.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ async function confirm(msg: string): Promise<boolean> {
4343
}
4444

4545
function bumpVersion(current: string, type: "patch" | "minor" | "major"): string {
46-
const [major, minor, patch] = current.split(".").map(Number);
46+
// Strip prerelease suffix (e.g. "0.1.0-rc.4" → "0.1.0")
47+
const base = current.replace(/-.*$/, "");
48+
const [major, minor, patch] = base.split(".").map(Number);
4749
switch (type) {
4850
case "patch": return `${major}.${minor}.${patch + 1}`;
4951
case "minor": return `${major}.${minor + 1}.0`;
@@ -53,20 +55,24 @@ function bumpVersion(current: string, type: "patch" | "minor" | "major"): string
5355

5456
// ── Parse args ──
5557

58+
function npmTag(version: string): "latest" | "rc" {
59+
return version.includes("-") ? "rc" : "latest";
60+
}
61+
5662
function parseArgs(): { version: string; tag: "latest" | "rc" } {
5763
const args = process.argv.slice(2);
5864

59-
// RC: exact version required
60-
if (args.includes("--rc")) {
61-
const idx = args.indexOf("--rc");
65+
// Exact version: --version 0.1.0 or --version 0.2.0-rc.1
66+
if (args.includes("--version")) {
67+
const idx = args.indexOf("--version");
6268
const ver = args[idx + 1];
6369
if (!ver || ver.startsWith("--")) {
64-
fatal("--rc requires an exact version (e.g. --rc 0.2.0-rc.1)");
70+
fatal("--version requires an exact version (e.g. --version 0.1.0 or --version 0.2.0-rc.1)");
6571
}
66-
if (!ver.includes("-")) {
67-
fatal(`RC version should contain a prerelease identifier (got "${ver}")`);
72+
if (!/^\d+\.\d+\.\d+(-[\w.]+)?$/.test(ver)) {
73+
fatal(`Invalid version format: "${ver}"`);
6874
}
69-
return { version: ver, tag: "rc" };
75+
return { version: ver, tag: npmTag(ver) };
7076
}
7177

7278
// Semver bump
@@ -79,7 +85,7 @@ function parseArgs(): { version: string; tag: "latest" | "rc" } {
7985
}
8086
}
8187

82-
fatal("Usage: release --patch | --minor | --major | --rc <version>");
88+
fatal("Usage: release --patch | --minor | --major | --version <version>");
8389
}
8490

8591
// ── Find publishable packages ──

0 commit comments

Comments
 (0)