astro-ghostcms/.pnpm-store/v3/files/44/961259c265bb7c5b941d5c9fc88...

27 lines
917 B
Plaintext

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;
}