Fix logic/Flow error with versionRange. (#8714)

This commit is contained in:
Logan Smyth 2018-09-15 15:37:03 -07:00 committed by GitHub
parent bd0c62dc0c
commit aa33303112
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -156,7 +156,7 @@ export default class File {
* helper exists, but was not available for the full given range, it will be * helper exists, but was not available for the full given range, it will be
* considered unavailable. * considered unavailable.
*/ */
availableHelper(name: string, versionRange: ?string) { availableHelper(name: string, versionRange: ?string): boolean {
let minVersion; let minVersion;
try { try {
minVersion = helpers.minVersion(name); minVersion = helpers.minVersion(name);
@ -166,6 +166,8 @@ export default class File {
return false; return false;
} }
if (typeof versionRange !== "string") return true;
// semver.intersects() has some surprising behavior with comparing ranges // semver.intersects() has some surprising behavior with comparing ranges
// with preprelease versions. We add '^' to ensure that we are always // with preprelease versions. We add '^' to ensure that we are always
// comparing ranges with ranges, which sidesteps this logic. // comparing ranges with ranges, which sidesteps this logic.
@ -186,9 +188,8 @@ export default class File {
if (semver.valid(versionRange)) versionRange = `^${versionRange}`; if (semver.valid(versionRange)) versionRange = `^${versionRange}`;
return ( return (
typeof versionRange !== "string" || !semver.intersects(`<${minVersion}`, versionRange) &&
(!semver.intersects(`<${minVersion}`, versionRange) && !semver.intersects(`>=8.0.0`, versionRange)
!semver.intersects(`>=8.0.0`, versionRange))
); );
} }