bumpVersion

tcmts.core.semver.bumpVersion · #lmzykmeb · term · runs anywhere

The next version at a level: 1.2.3 → 2.0.0 (major), 1.3.0 (minor), 1.2.4 (patch).

import { parse } from "#codebase/tcmts/core/semver";

export function bumpVersion(version: string, level: "major" | "minor" | "patch"): string {
  const p = parse(version);
  if (!p) throw new Error(`'${version}' isn't a version`);
  if (level === "major") return `${p.major + 1}.0.0`;
  if (level === "minor") return `${p.major}.${p.minor + 1}.0`;
  // a prerelease's patch release is the release itself
  return p.pre ? `${p.major}.${p.minor}.${p.patch}` : `${p.major}.${p.minor}.${p.patch + 1}`;
}

uses

used by