diff --git a/package.json b/package.json index 3f033f6..2e86abd 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,5 @@ "lint": "eslint .", "test": "jenkins-mocha tests/unit --recursive" }, - "version": "1.1.1" + "version": "1.1.2" } diff --git a/semver-intersect.js b/semver-intersect.js index d9a7fb4..a0868d9 100644 --- a/semver-intersect.js +++ b/semver-intersect.js @@ -36,6 +36,10 @@ function createShorthand (range) { } if (semver.major(min) !== semver.major(max)) { + if (semver.major(min) === 0) { + return '0'; + } + return `^${min}`; } diff --git a/tests/unit/semver-intersect.js b/tests/unit/semver-intersect.js index 78ff7c0..5195982 100644 --- a/tests/unit/semver-intersect.js +++ b/tests/unit/semver-intersect.js @@ -1,4 +1,5 @@ const expect = require('chai').expect; +const semver = require('semver'); const { createShorthand, ensureCompatible, @@ -43,6 +44,14 @@ describe('createShorthand', () => { const result = createShorthand('>=0.0.5 <0.1.0'); expect(result).to.equal('~0.0.5'); }); + it('should simplify 0.x', () => { + const result = createShorthand('>=0.0.0 <1.0.0'); + expect(result).to.equal('0'); + }); + it('should simplify ~0.0.x', () => { + const result = createShorthand('>=0.0.0 <0.1.0'); + expect(result).to.equal('~0.0.0'); + }); it('should simplify to ~0.0.0', () => { const result = createShorthand('>=0.0.0 <0.1.0'); expect(result).to.equal('~0.0.0');