From d50ae85c209a47a8a5d4c1bedaa94e6a77540095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Wed, 24 Apr 2024 17:15:51 +0800 Subject: [PATCH] fix: unsupported-features/node-builtins-modules range compare (#252) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixes https://github.com/eslint-community/eslint-plugin-n/issues/250 Signed-off-by: 唯然 --- lib/util/check-unsupported-builtins.js | 3 ++- .../no-unsupported-features/es-builtins.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/util/check-unsupported-builtins.js b/lib/util/check-unsupported-builtins.js index db2ae46f..e76a5e39 100644 --- a/lib/util/check-unsupported-builtins.js +++ b/lib/util/check-unsupported-builtins.js @@ -9,6 +9,7 @@ const { ReferenceTracker } = require("@eslint-community/eslint-utils") const getConfiguredNodeVersion = require("./get-configured-node-version") const getSemverRange = require("./get-semver-range") const unprefixNodeColon = require("./unprefix-node-colon") +const semverRangeSubset = require("semver/ranges/subset") /** * Parses the options. @@ -50,7 +51,7 @@ function isSupported({ supported }, configured) { return false } - return configured.intersects(range) + return semverRangeSubset(configured, range) } /** diff --git a/tests/lib/rules/no-unsupported-features/es-builtins.js b/tests/lib/rules/no-unsupported-features/es-builtins.js index 1ca57dd1..a78c9cce 100644 --- a/tests/lib/rules/no-unsupported-features/es-builtins.js +++ b/tests/lib/rules/no-unsupported-features/es-builtins.js @@ -2424,6 +2424,23 @@ runTests([ }, ], }, + // https://github.com/eslint-community/eslint-plugin-n/issues/250 + { + code: "function wrap() { globalThis }", + settings: { + node: { version: ">=11.9.9" }, + }, + errors: [ + { + messageId: "not-supported-till", + data: { + name: "globalThis", + supported: "12.0.0", + version: ">=11.9.9", + }, + }, + ], + }, ], }, ])