mirror of
https://github.com/stablyai/agent-slack.git
synced 2026-09-19 01:06:54 +08:00
76df40164c
Add "rc" shorthand that defaults to patch-rc, so running `npm run release rc` from 0.5.2 produces 0.5.3-rc.0 instead of requiring explicit patch-rc/minor-rc. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
import semver from "semver";
|
|
import fs from "fs";
|
|
const [, , versionArg] = process.argv;
|
|
if (!versionArg) {
|
|
console.error("version argument required");
|
|
process.exit(1);
|
|
}
|
|
const pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
|
|
const currentVersion = pkg.version;
|
|
if (["patch", "minor", "major"].includes(versionArg)) {
|
|
console.log(semver.inc(currentVersion, versionArg));
|
|
process.exit(0);
|
|
}
|
|
// "rc" alone defaults to patch-rc
|
|
const rcArg = versionArg === "rc" ? "patch-rc" : versionArg;
|
|
if (["patch-rc", "minor-rc", "major-rc"].includes(rcArg)) {
|
|
const bumpType = rcArg.replace("-rc", "");
|
|
const parsed = semver.parse(currentVersion);
|
|
const isRc = parsed.prerelease.length > 0 && parsed.prerelease[0] === "rc";
|
|
if (isRc) {
|
|
let rcTargetType = "unknown";
|
|
if (parsed.patch > 0) {
|
|
rcTargetType = "patch";
|
|
} else if (parsed.minor > 0) {
|
|
rcTargetType = "minor";
|
|
} else if (parsed.major > 0) {
|
|
rcTargetType = "major";
|
|
}
|
|
if (rcTargetType === bumpType) {
|
|
console.log(semver.inc(currentVersion, "prerelease", "rc"));
|
|
process.exit(0);
|
|
}
|
|
}
|
|
const baseVersion = `${parsed.major}.${parsed.minor}.${parsed.patch}`;
|
|
console.log(semver.inc(baseVersion, `pre${bumpType}`, "rc"));
|
|
process.exit(0);
|
|
}
|
|
const valid = semver.valid(versionArg);
|
|
if (!valid) {
|
|
console.error(`invalid version format: ${versionArg}`);
|
|
process.exit(1);
|
|
}
|
|
console.log(valid);
|