Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 34x 32x 32x 32x 32x 34x 2x 2x 34x 34x 34x 34x 34x 34x 34x 1x 1x 1x 1x 1x 1x 1x 20x 20x 1x 1x 1x 1x 1x 1x 1x 16x 16x 1x 1x 1x | "use strict";
/**
* @module version-schemes/semver
*/
import semver from "semver";
import util from "util";
/**
* Versioning scheme following semantic versioning standard
* {@link https://semver.org/}.
*/
class Semver {
/**
* Calculate release and post-release versions from the current
* pre-release version.
*
* @param {String} preReleaseVersion - current pre-release version,
* e.g. 1.2.3-pre.0
* @param {String} [releaseIncrementType=minor] - major, minor, or patch,
* where patch releases the current version without incrementing it
* @param {String} [postReleaseIncrementType=patch] - major, minor, or
* patch increment applied to the release version to get the next
* pre-release version
*/
constructor(
preReleaseVersion,
releaseIncrementType,
postReleaseIncrementType,
) {
releaseIncrementType = releaseIncrementType || "minor";
postReleaseIncrementType = postReleaseIncrementType || "patch";
this.preReleaseVersion = preReleaseVersion;
this.preReleaseComponent = semver.prerelease(preReleaseVersion)
? semver.prerelease(preReleaseVersion)[0]
: "pre";
// has to rely on util format due to semver#coerce being no longer available in newer version of semver library
this.preReleaseVersionWithoutPreReleaseComponent = util.format(
"%d.%d.%d",
semver.major(this.preReleaseVersion),
semver.minor(this.preReleaseVersion),
semver.patch(this.preReleaseVersion),
);
if (["minor", "major"].includes(releaseIncrementType)) {
this.releaseVersion = semver.inc(
this.preReleaseVersionWithoutPreReleaseComponent,
releaseIncrementType,
);
} else {
this.releaseVersion = this.preReleaseVersionWithoutPreReleaseComponent;
}
this.postReleaseVersion = semver.inc(
this.releaseVersion,
"pre" + postReleaseIncrementType,
this.preReleaseComponent,
);
}
/**
* Get release version.
*
* @return {String} release version, e.g. 1.3.0
*/
getReleaseVersion() {
return this.releaseVersion;
}
/**
* Get post-release version, i.e. the next pre-release version.
*
* @return {String} post-release version, e.g. 1.3.1-pre.0
*/
getPostReleaseVersion() {
return this.postReleaseVersion;
}
}
export { Semver as default };
|