diff --git a/dist/index.d.ts b/dist/index.d.ts index cfd1ac5..691f72f 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,6 +1,7 @@ import { SemVer } from 'semver'; export declare class SmartVersion { semver: SemVer; + versionString: string; update: { patch: () => void; minor: () => void; @@ -10,4 +11,6 @@ export declare class SmartVersion { readonly major: number; readonly minor: number; readonly patch: number; + greaterThanString(versionStringArg: any): boolean; + lessThanString(versionStringArg: any): boolean; } diff --git a/dist/index.js b/dist/index.js index 5dd9707..407d4f0 100644 --- a/dist/index.js +++ b/dist/index.js @@ -15,6 +15,7 @@ class SmartVersion { } }; this.semver = new plugins.semver.SemVer(semVerStringArg); + this.versionString = this.semver.version; } get major() { return this.semver.major; @@ -25,6 +26,12 @@ class SmartVersion { get patch() { return this.semver.patch; } + greaterThanString(versionStringArg) { + return plugins.semver.gt(this.versionString, versionStringArg); + } + lessThanString(versionStringArg) { + return plugins.semver.lt(this.versionString, versionStringArg); + } } exports.SmartVersion = SmartVersion; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtEQUFpRDtBQUlqRDtJQWNFLFlBQWEsZUFBdUI7UUFacEMsV0FBTSxHQUFHO1lBQ1AsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1NBQ0YsQ0FBQTtRQUdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUMxQixDQUFDO0NBRUY7QUE5QkQsb0NBOEJDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtEQUFpRDtBQUlqRDtJQWVFLFlBQWEsZUFBdUI7UUFacEMsV0FBTSxHQUFHO1lBQ1AsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1NBQ0YsQ0FBQTtRQUdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFBO0lBQzFDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxnQkFBZ0I7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsY0FBYyxDQUFFLGdCQUFnQjtRQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7Q0FFRjtBQXhDRCxvQ0F3Q0MifQ== \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 72a0ebe..9731fc0 100644 --- a/test/test.ts +++ b/test/test.ts @@ -7,4 +7,16 @@ tap.test('should create a valid SmartVersion', async () => { expect(localSmartVersion).to.be.instanceof(smartversion.SmartVersion) }) +tap.test('should correctly classify greater and less than', async () => { + // tslint:disable-next-line:no-unused-expression + expect(localSmartVersion.greaterThanString('4.0.0')).to.be.false + // tslint:disable-next-line:no-unused-expression + expect(localSmartVersion.greaterThanString('3.0.0')).to.be.true + // tslint:disable-next-line:no-unused-expression + expect(localSmartVersion.lessThanString('v4.0.0')).to.be.true + // tslint:disable-next-line:no-unused-expression + expect(localSmartVersion.lessThanString('v3.0.0')).to.be.false + +}) + tap.start() diff --git a/ts/index.ts b/ts/index.ts index 32c0a7d..60c6c50 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -4,6 +4,7 @@ import { SemVer } from 'semver' export class SmartVersion { semver: SemVer + versionString: string update = { patch: () => { this.semver.patch = this.semver.patch + 1 @@ -18,6 +19,7 @@ export class SmartVersion { constructor (semVerStringArg: string) { this.semver = new plugins.semver.SemVer(semVerStringArg) + this.versionString = this.semver.version } get major () { @@ -32,4 +34,12 @@ export class SmartVersion { return this.semver.patch } + greaterThanString (versionStringArg) { + return plugins.semver.gt(this.versionString, versionStringArg) + } + + lessThanString (versionStringArg) { + return plugins.semver.lt(this.versionString, versionStringArg) + } + }