From e6cee0fd40316fe52c48174fa603ca35e74b090b Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 12 Oct 2021 12:27:48 +0800 Subject: [PATCH] Fix compatibility with ESLint 7 (#1548) --- package.json | 2 +- rules/expiring-todo-comments.js | 4 +++- rules/utils/get-builtin-rule.js | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 rules/utils/get-builtin-rule.js diff --git a/package.json b/package.json index 46d44c17a9..88668042c4 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "xo": "^0.44.0" }, "peerDependencies": { - "eslint": ">=8.0.0" + "eslint": ">=7.32.0" }, "ava": { "files": [ diff --git a/rules/expiring-todo-comments.js b/rules/expiring-todo-comments.js index 23c40a8cf5..edbe686ecd 100644 --- a/rules/expiring-todo-comments.js +++ b/rules/expiring-todo-comments.js @@ -2,7 +2,9 @@ const readPkgUp = require('read-pkg-up'); const semver = require('semver'); const ci = require('ci-info'); -const baseRule = require('eslint/use-at-your-own-risk').builtinRules.get('no-warning-comments'); +const getBuiltinRule = require('./utils/get-builtin-rule.js'); + +const baseRule = getBuiltinRule('no-warning-comments'); // `unicorn/` prefix is added to avoid conflicts with core rule const MESSAGE_ID_AVOID_MULTIPLE_DATES = 'unicorn/avoidMultipleDates'; diff --git a/rules/utils/get-builtin-rule.js b/rules/utils/get-builtin-rule.js new file mode 100644 index 0000000000..7433df808d --- /dev/null +++ b/rules/utils/get-builtin-rule.js @@ -0,0 +1,14 @@ +'use strict'; + +function getBuiltinRule(id) { + // TODO: Remove this when we drop support for ESLint 7 + const eslintVersion = require('eslint/package.json').version; + /* istanbul ignore next */ + if (eslintVersion.startsWith('7.')) { + return require(`eslint/lib/rules/${id}`); + } + + return require('eslint/use-at-your-own-risk').builtinRules.get(id); +} + +module.exports = getBuiltinRule;