|
1 | | -/** |
2 | | - * @fileoverview utils used by the rule fixers. |
3 | | - |
4 | | - */ |
5 | | -"use strict"; |
6 | | -const eslint = require("eslint"); |
7 | | -const linter = new eslint.Linter(); |
8 | | - |
9 | | -exports.getFixableRule = function(ruleName, recommended = false, fixable = "code") { |
10 | | - const rule = linter.getRules().get(ruleName); |
11 | | - |
12 | | - rule.meta.recommended = recommended; |
13 | | - rule.meta.fixable = fixable; |
14 | | - return rule; |
15 | | -}; |
| 1 | +/** |
| 2 | + * @fileoverview utils used by the rule fixers. |
| 3 | + |
| 4 | + */ |
| 5 | +"use strict"; |
| 6 | + |
| 7 | +exports.eslintVersion = Number.parseInt(require("eslint/package.json").version, 10); |
| 8 | + |
| 9 | +// eslint v6 restructured its codebase |
| 10 | +// TODO: this might be unreliable |
| 11 | +if (exports.eslintVersion >= 8) { |
| 12 | + const { builtinRules } = require("eslint/use-at-your-own-risk"); |
| 13 | + exports.builtinRules = builtinRules; |
| 14 | +} else if (exports.eslintVersion >= 6) { |
| 15 | + const builtin = require("eslint/lib/rules"); |
| 16 | + exports.builtinRules = builtin; |
| 17 | +} else { |
| 18 | + const builtin = require("eslint/lib/built-in-rules-index"); // eslint-disable-line n/no-missing-require |
| 19 | + exports.builtinRules = builtin; |
| 20 | +} |
| 21 | + |
| 22 | +exports.getFixableRule = function(ruleName, recommended = false, fixable = "code") { |
| 23 | + const rule = exports.builtinRules[ruleName] || exports.builtinRules.get(ruleName); |
| 24 | + |
| 25 | + rule.meta.recommended = recommended; |
| 26 | + rule.meta.fixable = fixable; |
| 27 | + return rule; |
| 28 | +}; |
0 commit comments