Fix reSemverRange to parse pre-release versions that contain hyphens.
This commit is contained in:
parent
ff978dc8ad
commit
86ea225075
|
@ -8,7 +8,7 @@
|
||||||
// | | | |optional build prefixed by '+'
|
// | | | |optional build prefixed by '+'
|
||||||
var reSemver = /^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?(?:\+([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?$/
|
var reSemver = /^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?(?:\+([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?$/
|
||||||
//, reSemverRange = /\s*((\|\||\-)|(([<>~]?=?)\s*(v)?([0-9]+)(\.(x|[0-9]+))?(\.(x|[0-9]+))?(([\-+])([a-zA-Z0-9\.]+))?))\s*/g
|
//, reSemverRange = /\s*((\|\||\-)|(([<>~]?=?)\s*(v)?([0-9]+)(\.(x|[0-9]+))?(\.(x|[0-9]+))?(([\-+])([a-zA-Z0-9\.]+))?))\s*/g
|
||||||
, reSemverRange = /\s*((\|\||\-)|(([<>~^]?=?)\s*(v)?([0-9]+)(\.(x|\*|[0-9]+))?(\.(x|\*|[0-9]+))?(([\-+])([a-zA-Z0-9\.]+))?))\s*/g
|
, reSemverRange = /\s*((\|\||\-)|(([<>~^]?=?)\s*(v)?([0-9]+)(\.(x|\*|[0-9]+))?(\.(x|\*|[0-9]+))?(([\-+])([a-zA-Z0-9\.-]+))?))\s*/g
|
||||||
;
|
;
|
||||||
|
|
||||||
// Returns a new object with all of the undefined properties removed from the given object
|
// Returns a new object with all of the undefined properties removed from the given object
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
arr.forEach(stringify);
|
arr.forEach(stringify);
|
||||||
|
|
||||||
return str.trim();
|
return str.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,11 +107,11 @@
|
||||||
, build: m[6]
|
, build: m[6]
|
||||||
}))
|
}))
|
||||||
;
|
;
|
||||||
|
|
||||||
if (0 === m.length) {
|
if (0 === m.length) {
|
||||||
ver = null;
|
ver = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ver;
|
return ver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
, arr = []
|
, arr = []
|
||||||
, obj
|
, obj
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
while (m = reSemverRange.exec(str)) {
|
while (m = reSemverRange.exec(str)) {
|
||||||
obj = {
|
obj = {
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
arr.push(new SemVer(pruned(obj)));
|
arr.push(new SemVer(pruned(obj)));
|
||||||
//console.log(m);
|
//console.log(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
//return new SemVerRange(arr);
|
//return new SemVerRange(arr);
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
21
test/spec.js
21
test/spec.js
|
@ -136,6 +136,27 @@ describe('parseRange', function() {
|
||||||
}]);
|
}]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should parse pre-release versions', function() {
|
||||||
|
deepOwnEqual(semverutils.parseRange('1.0.0-rc1'), [{
|
||||||
|
semver: '1.0.0-rc1',
|
||||||
|
major: '1',
|
||||||
|
minor: '0',
|
||||||
|
patch: '0',
|
||||||
|
release: 'rc1'
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should parse pre-release versions with hyphens', function() {
|
||||||
|
|
||||||
|
deepOwnEqual(semverutils.parseRange('1.0.0-rc-2'), [{
|
||||||
|
semver: '1.0.0-rc-2',
|
||||||
|
major: '1',
|
||||||
|
minor: '0',
|
||||||
|
patch: '0',
|
||||||
|
release: 'rc-2'
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
it('should parse hyphen ranges', function() {
|
it('should parse hyphen ranges', function() {
|
||||||
deepOwnEqual(semverutils.parseRange('1.0.0 - 1.0.x'), [{
|
deepOwnEqual(semverutils.parseRange('1.0.0 - 1.0.x'), [{
|
||||||
semver: '1.0.0',
|
semver: '1.0.0',
|
||||||
|
|
Loading…
Reference in New Issue