diff options
author | Fabio Berger <me@fabioberger.com> | 2018-06-19 01:22:31 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-06-19 05:08:44 +0800 |
commit | dcd53c3c5bc251af242166cf758146649eb4185b (patch) | |
tree | f9c0401be6a3de8a5907e4a4425eccc8e0de844f | |
parent | 3e64b3da398a90e6ddfc287ebf28ec780b64b56f (diff) | |
download | dexon-0x-contracts-dcd53c3c5bc251af242166cf758146649eb4185b.tar.gz dexon-0x-contracts-dcd53c3c5bc251af242166cf758146649eb4185b.tar.zst dexon-0x-contracts-dcd53c3c5bc251af242166cf758146649eb4185b.zip |
Use semver package instead of getNextPatchVersion
-rw-r--r-- | packages/monorepo-scripts/src/publish.ts | 8 | ||||
-rw-r--r-- | packages/monorepo-scripts/src/utils/utils.ts | 15 |
2 files changed, 16 insertions, 7 deletions
diff --git a/packages/monorepo-scripts/src/publish.ts b/packages/monorepo-scripts/src/publish.ts index cdd250ec3..5f4c67e04 100644 --- a/packages/monorepo-scripts/src/publish.ts +++ b/packages/monorepo-scripts/src/publish.ts @@ -213,12 +213,16 @@ async function lernaPublishAsync(packageToVersionChange: { [name: string]: strin } function updateVersionNumberIfNeeded(currentVersion: string, proposedNextVersion: string): string { + const updatedVersionIfValid = semver.inc(currentVersion, 'patch'); + if (_.isNull(updatedVersionIfValid)) { + throw new Error(`Encountered invalid semver: ${currentVersion}`); + } if (proposedNextVersion === currentVersion) { - return utils.getNextPatchVersion(currentVersion); + return updatedVersionIfValid; } const sortedVersions = semverSort.desc([proposedNextVersion, currentVersion]); if (sortedVersions[0] !== proposedNextVersion) { - return utils.getNextPatchVersion(currentVersion); + return updatedVersionIfValid; } return proposedNextVersion; } 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<string> { - 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<string[]> { const result = await execAsync(`git ls-remote --tags`, { |