From dcd53c3c5bc251af242166cf758146649eb4185b Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Jun 2018 19:22:31 +0200 Subject: Use semver package instead of getNextPatchVersion --- packages/monorepo-scripts/src/utils/utils.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'packages/monorepo-scripts/src/utils') diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts index 16a84b869..20bc57bae 100644 --- a/packages/monorepo-scripts/src/utils/utils.ts +++ b/packages/monorepo-scripts/src/utils/utils.ts @@ -1,6 +1,7 @@ import lernaGetPackages = require('lerna-get-packages'); import * as _ from 'lodash'; import { exec as execAsync } from 'promisify-child-process'; +import semver = require('semver'); import { constants } from '../constants'; import { GitTagsByPackageName, UpdatedPackage } from '../types'; @@ -37,15 +38,19 @@ export const utils = { packageName: string, packageLocation: string, ): Promise { - let nextVersion; + let nextVersionIfValid; const changelog = changelogUtils.getChangelogOrCreateIfMissing(packageName, packageLocation); if (_.isEmpty(changelog)) { - nextVersion = this.getNextPatchVersion(currentVersion); + nextVersionIfValid = semver.inc(currentVersion, 'patch'); } const lastEntry = changelog[0]; - nextVersion = - lastEntry.version === currentVersion ? this.getNextPatchVersion(currentVersion) : lastEntry.version; - return nextVersion; + nextVersionIfValid = semver.eq(lastEntry.version, currentVersion) + ? semver.inc(currentVersion, 'patch') + : lastEntry.version; + if (_.isNull(nextVersionIfValid)) { + throw new Error(`Encountered invalid semver: ${currentVersion} associated with ${packageName}`); + } + return nextVersionIfValid; }, async getRemoteGitTagsAsync(): Promise { const result = await execAsync(`git ls-remote --tags`, { -- cgit v1.2.3