Skip to content

Commit cde69e8

Browse files
committed
fix(lerna): --setid in prerelease
1 parent 21a6760 commit cde69e8

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

src/commands/log.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { createChangelog } from '../changelog';
22
import { GitNewTag, LogOptions } from '../types';
33
import { lastTag, setVersion, setTag, newCommits, isValidTag, pushCommits } from '../git';
44
import { success, error, getHeader } from '../console';
5-
import { existsConfig, getFile, getLernaRoot } from '../utils';
5+
import { existsConfig, getFile, getLernaRoot, isPrerelease } from '../utils';
66
import { getGeneriConfig } from '../generi';
77
import { publish } from '../npm';
88
import { nextTag } from '../tag';
@@ -46,12 +46,14 @@ export const setup = (tag: GitNewTag, options: LogOptions) => {
4646

4747
const last = lerna ? 'v' + JSON.parse(lerna).version : lastTag();
4848

49+
const prerelease = isPrerelease(tag)
50+
? options?.git?.prerelease ?? config.prerelease ?? 'beta'
51+
: undefined;
52+
4953
const next = nextTag({
5054
last,
5155
tag,
52-
prerelease: tag.startsWith('pre')
53-
? options?.git?.prerelease ?? config.prerelease
54-
: undefined,
56+
prerelease,
5557
});
5658

5759
if (!next) {
@@ -62,7 +64,7 @@ export const setup = (tag: GitNewTag, options: LogOptions) => {
6264
if (config.version) {
6365
success(`${last} to ${next} (${tag.toUpperCase()})`);
6466

65-
setVersion(next, tag);
67+
setVersion(next, tag, prerelease);
6668
}
6769

6870
createChangelog(!config.version ? lastTag() : next);

src/git.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { success, error, info } from './console';
2-
import { Commit, GitNewTag } from './types';
2+
import { Commit, GitNewTag, GitPrerelease } from './types';
33
import { getRoot, setFile, getFile, getPackageRoot, getLernaRoot } from './utils';
44
import fs from 'fs';
55
import path from 'path';
@@ -79,7 +79,11 @@ export const getTagCommit = (commit: Commit) => {
7979
return commit.refName.filter((ref) => ref.includes('tag'))[0].replace('tag: ', '');
8080
};
8181

82-
export const setVersion = (target: string, tag: GitNewTag) => {
82+
export const setVersion = (
83+
target: string,
84+
tag: GitNewTag,
85+
prerelease?: GitPrerelease
86+
) => {
8387
const normalize = target.substring(1);
8488
let lerna = getFile(getLernaRoot());
8589

@@ -88,9 +92,12 @@ export const setVersion = (target: string, tag: GitNewTag) => {
8892
info(`Executing <lerna version ${tag}> command...`);
8993

9094
try {
95+
const asPrerelease = prerelease ? ['--preid', prerelease] : [];
96+
9197
execa.sync('lerna', [
9298
'version',
9399
tag,
100+
...asPrerelease,
94101
'--no-private',
95102
'--no-changelog',
96103
'--no-git-tag-version',

src/utils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import execa from 'execa';
33
import path from 'path';
44
import { error } from './console';
55
import { isCleanChanges } from './git';
6+
import { GitNewTag } from './types';
67

78
export const getRoot = () => {
89
return process.cwd();
@@ -78,3 +79,5 @@ export const isChangesForCommit = (git: boolean) => {
7879
'There are existing changes in project for commit. Commit first before using this command.'
7980
);
8081
};
82+
83+
export const isPrerelease = (tag: GitNewTag) => tag.startsWith('pre');

0 commit comments

Comments
 (0)