aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-06-19 01:22:31 +0800
committerFabio Berger <me@fabioberger.com>2018-06-19 05:08:44 +0800
commitdcd53c3c5bc251af242166cf758146649eb4185b (patch)
treef9c0401be6a3de8a5907e4a4425eccc8e0de844f
parent3e64b3da398a90e6ddfc287ebf28ec780b64b56f (diff)
downloaddexon-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.ts8
-rw-r--r--packages/monorepo-scripts/src/utils/utils.ts15
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`, {