Skip to content

Commit 262db5a

Browse files
committed
fix(release): properly handle semver release types
previously, specifying "minor" via `yarn release:version minor` would use the literal string "minor"
1 parent fda5223 commit 262db5a

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

scripts/release/version.js

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,42 @@ const rootPackageJsonPath = `${rootPath}/package.json`;
1515
const rootPackageJson = JSON.parse(fs.readFileSync(rootPackageJsonPath, 'utf-8'));
1616

1717
(async () => {
18-
const newVersion = process.argv[2] || (await promptVersion());
19-
updatePackages(newVersion);
18+
const rawVersion = await getVersion();
19+
const parsedVersion = await parseVersion(rawVersion);
20+
updatePackages(parsedVersion);
2021
})().catch(console.error);
2122

22-
async function promptVersion() {
23+
async function getVersion() {
24+
if (process.argv[2]) {
25+
return process.argv[2];
26+
}
2327
const rl = readline.createInterface({
2428
input: process.stdin,
2529
output: process.stdout,
2630
});
31+
const answer = await new Promise((resolve) =>
32+
rl.question('Enter a new LWC version: ', resolve)
33+
);
34+
rl.close();
35+
return answer;
36+
}
2737

38+
async function parseVersion(rawVersion) {
2839
try {
29-
const answer = await new Promise((resolve) =>
30-
rl.question('Enter a new LWC version: ', resolve)
31-
);
32-
const exact = semver.valid(answer);
40+
const exact = semver.valid(rawVersion);
3341
if (exact) {
3442
// answer is a semver version
3543
return exact;
3644
}
37-
const incremented = semver.inc(rootPackageJson.version, answer);
45+
const incremented = semver.inc(rootPackageJson.version, rawVersion);
3846
if (incremented) {
3947
// answer is a semver release type (major/minor/etc.)
4048
return incremented;
4149
}
42-
throw new Error(`Invalid release version: ${answer}`);
50+
throw new Error(`Invalid release version: ${rawVersion}`);
4351
} catch (error) {
4452
console.error(error);
4553
process.exit(1);
46-
} finally {
47-
rl.close();
4854
}
4955
}
5056

0 commit comments

Comments
 (0)