|
|
@@ -12,6 +12,7 @@ type VersionBumpType = 'prerelease' | 'patch' | 'minor' | 'major';
|
|
|
|
|
|
interface ReleaseTaskOptions {
|
|
|
publishToNpm: boolean;
|
|
|
+ usePackageJsonVersion: boolean;
|
|
|
}
|
|
|
|
|
|
const promptBumpType = async () => {
|
|
|
@@ -93,7 +94,7 @@ const ensureMasterBranch = async () => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ publishToNpm }) => {
|
|
|
+const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ publishToNpm, usePackageJsonVersion }) => {
|
|
|
if (publishToNpm) {
|
|
|
await ensureMasterBranch();
|
|
|
}
|
|
|
@@ -109,28 +110,40 @@ const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ publishToNpm
|
|
|
console.log(`Current version: ${pkg.version}`);
|
|
|
|
|
|
do {
|
|
|
- const { type } = await promptBumpType();
|
|
|
- console.log(type);
|
|
|
- if (type === 'prerelease') {
|
|
|
- const { id } = await promptPrereleaseId('What kind of prerelease?', false);
|
|
|
- nextVersion = semver.inc(pkg.version, type, id);
|
|
|
- } else {
|
|
|
- const { id } = await promptPrereleaseId();
|
|
|
- if (id !== 'no') {
|
|
|
- nextVersion = semver.inc(pkg.version, `pre${type}`, id);
|
|
|
+ if (!usePackageJsonVersion) {
|
|
|
+ const { type } = await promptBumpType();
|
|
|
+ console.log(type);
|
|
|
+ if (type === 'prerelease') {
|
|
|
+ const { id } = await promptPrereleaseId('What kind of prerelease?', false);
|
|
|
+ nextVersion = semver.inc(pkg.version, type, id);
|
|
|
} else {
|
|
|
- nextVersion = semver.inc(pkg.version, type);
|
|
|
+ const { id } = await promptPrereleaseId();
|
|
|
+ if (id !== 'no') {
|
|
|
+ nextVersion = semver.inc(pkg.version, `pre${type}`, id);
|
|
|
+ } else {
|
|
|
+ nextVersion = semver.inc(pkg.version, type);
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ nextVersion = pkg.version;
|
|
|
}
|
|
|
|
|
|
console.log(chalk.yellowBright.bold(`You are going to release a new version of ${pkg.name}`));
|
|
|
- console.log(chalk.green(`Version bump: ${pkg.version} ->`), chalk.bold.yellowBright(`${nextVersion}`));
|
|
|
+
|
|
|
+ if (usePackageJsonVersion) {
|
|
|
+ console.log(chalk.green(`Version based on package.json: `), chalk.bold.yellowBright(`${nextVersion}`));
|
|
|
+ } else {
|
|
|
+ console.log(chalk.green(`Version bump: ${pkg.version} ->`), chalk.bold.yellowBright(`${nextVersion}`));
|
|
|
+ }
|
|
|
+
|
|
|
const { confirmed } = await promptConfirm();
|
|
|
|
|
|
releaseConfirmed = confirmed;
|
|
|
} while (!releaseConfirmed);
|
|
|
|
|
|
- await bumpVersion(nextVersion);
|
|
|
+ if (!usePackageJsonVersion) {
|
|
|
+ await bumpVersion(nextVersion);
|
|
|
+ }
|
|
|
|
|
|
if (publishToNpm) {
|
|
|
await publishPackage(pkg.name, nextVersion);
|