import * as plugins from './smartversion.plugins'; import { SemVer } from 'semver'; export class SmartVersion { semver: SemVer; versionString: string; update = { patch: () => { this.semver.patch = this.semver.patch + 1; }, minor: () => { this.semver.minor = this.semver.minor + 1; }, major: () => { this.semver.major = this.semver.major + 1; } }; constructor(semVerStringArg: string) { this.semver = new plugins.semver.SemVer(semVerStringArg); this.versionString = this.semver.version; } get major() { return this.semver.major; } get minor() { return this.semver.minor; } get patch() { return this.semver.patch; } greaterThan(smartVersionArg: SmartVersion) { return this.greaterThanString(smartVersionArg.versionString); } /** * compares the version of this against a string */ greaterThanString(versionStringArg) { return plugins.semver.gt(this.versionString, versionStringArg); } lessThan(smartVersionArg: SmartVersion) { return this.lessThanString(smartVersionArg.versionString); } /** * compares the version of this against a string */ lessThanString(versionStringArg) { return plugins.semver.lt(this.versionString, versionStringArg); } }