-
Notifications
You must be signed in to change notification settings - Fork 499
/
increment.ts
26 lines (24 loc) 路 917 Bytes
/
increment.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import semverInc from "semver/functions/inc";
import { InternalRelease, PreInfo } from "./types";
import { InternalError } from "@changesets/errors";
export function incrementVersion(
release: InternalRelease,
preInfo: PreInfo | undefined
) {
if (release.type === "none") {
return release.oldVersion;
}
let version = semverInc(release.oldVersion, release.type)!;
if (preInfo !== undefined && preInfo.state.mode !== "exit") {
let preVersion = preInfo.preVersions.get(release.name);
if (preVersion === undefined) {
throw new InternalError(
`preVersion for ${release.name} does not exist when preState is defined`
);
}
// why are we adding this ourselves rather than passing 'pre' + versionType to semver.inc?
// because semver.inc with prereleases is confusing and this seems easier
version += `-${preInfo.state.tag}.${preVersion}`;
}
return version;
}