From 4b4b1696086ebdb86269175e76dfffff62dfaae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Thu, 16 Jun 2022 11:52:23 +0800 Subject: [PATCH] fix: range matching fails fixes #22 --- lib/rules/no-unsupported-features/es-syntax.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/rules/no-unsupported-features/es-syntax.js b/lib/rules/no-unsupported-features/es-syntax.js index 0eb6862b..0457da30 100644 --- a/lib/rules/no-unsupported-features/es-syntax.js +++ b/lib/rules/no-unsupported-features/es-syntax.js @@ -7,6 +7,7 @@ const { rules: esRules } = require("eslint-plugin-es") const { getInnermostScope } = require("eslint-utils") const { Range } = require("semver") +const rangeSubset = require("semver/ranges/subset") const getConfiguredNodeVersion = require("../../util/get-configured-node-version") const getSemverRange = require("../../util/get-semver-range") const mergeVisitorsInPlace = require("../../util/merge-visitors-in-place") @@ -457,11 +458,11 @@ function defineVisitor(context, options) { return true } - if (aCase.supported instanceof Range) { - return !options.version.intersects(aCase.supported) - } - - return options.version.intersects(getSemverRange(`<${aCase.supported}`)) + const supported = + typeof aCase.supported === "string" + ? getSemverRange(`>=${aCase.supported}`) + : aCase.supported + return !rangeSubset(options.version, supported) } /**