import type { ReleaseType } from 'semver'; import semver from 'semver'; import { logger } from '../../../logger/index.ts'; import { regEx } from '../../../util/regex.ts'; import type { BumpPackageVersionResult } from '../types.ts'; export function bumpPackageVersion( content: string, currentValue: string, bumpVersion: ReleaseType, ): BumpPackageVersionResult { logger.debug( { bumpVersion, currentValue }, 'Checking if we should bump build.sbt version', ); let bumpedContent = content; const bumpedVersion = semver.inc(currentValue, bumpVersion); if (!bumpedVersion) { logger.warn('Version incremental failed'); return { bumpedContent }; } bumpedContent = content.replace( regEx(/^(?version\s*:=\s*).*$/m), `$"${bumpedVersion}"`, ); if (bumpedContent === content) { logger.debug('Version was already bumped'); } else { logger.debug(`Bumped build.sbt version to ${bumpedVersion}`); } return { bumpedContent }; }