diff --git a/.eslintrc.js b/.eslintrc.js index 780368769f6..86cc480173f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,18 +1,13 @@ "use strict"; -const path = require("path"); -const rulesDirPlugin = require("eslint-plugin-rulesdir"); - -rulesDirPlugin.RULES_DIR = path.join(__dirname, "tools/internal-rules"); - module.exports = { root: true, plugins: [ "eslint-plugin", - "rulesdir" + "internal-rules" ], extends: [ - "./packages/eslint-config-eslint/default.yml", + "eslint", "plugin:eslint-plugin/recommended" ], rules: { @@ -24,24 +19,30 @@ module.exports = { "eslint-plugin/require-meta-type": "error", "eslint-plugin/test-case-property-ordering": "error", "eslint-plugin/test-case-shorthand-strings": "error", - "rulesdir/multiline-comment-style": "error" + "internal-rules/multiline-comment-style": "error" }, overrides: [ { files: ["lib/rules/*", "tools/internal-rules/*"], + excludedFiles: ["tools/internal-rules/index.js"], rules: { - "rulesdir/no-invalid-meta": "error", - "rulesdir/consistent-docs-description": "error" + "internal-rules/no-invalid-meta": "error", + "internal-rules/consistent-docs-description": "error" /* * TODO: enable it when all the rules using meta.messages - * "rulesdir/consistent-meta-messages": "error" + * "internal-rules/consistent-meta-messages": "error" */ } + }, { + files: ["tools/internal-rules/*"], + rules: { + "node/no-unpublished-require": "off" + } }, { files: ["lib/rules/*"], rules: { - "rulesdir/consistent-docs-url": "error" + "internal-rules/consistent-docs-url": "error" } }, { files: ["tests/**/*"], diff --git a/package.json b/package.json index 43d9db813f2..2d9f0d0be15 100644 --- a/package.json +++ b/package.json @@ -85,11 +85,11 @@ "coveralls": "^3.0.1", "dateformat": "^3.0.3", "ejs": "^2.6.1", + "eslint-config-eslint": "file:packages/eslint-config-eslint", "eslint-plugin-eslint-plugin": "^2.0.1", + "eslint-plugin-internal-rules": "file:tools/internal-rules", "eslint-plugin-node": "^8.0.0", - "eslint-plugin-rulesdir": "^0.1.0", "eslint-release": "^1.2.0", - "eslint-rule-composer": "^0.3.0", "eslump": "^2.0.0", "esprima": "^4.0.1", "istanbul": "^0.4.5", diff --git a/tests/lib/code-path-analysis/code-path.js b/tests/lib/code-path-analysis/code-path.js index 6b90b57bf3c..be1039fb47d 100644 --- a/tests/lib/code-path-analysis/code-path.js +++ b/tests/lib/code-path-analysis/code-path.js @@ -66,7 +66,7 @@ function getOrderOfTraversing(codePath, options, callback) { describe("CodePathAnalyzer", () => { describe(".traverseSegments()", () => { describe("should traverse segments from the first to the end:", () => { - /* eslint-disable rulesdir/multiline-comment-style */ + /* eslint-disable internal-rules/multiline-comment-style */ it("simple", () => { const codePath = parseCodePaths("foo(); bar(); baz();")[0]; const order = getOrderOfTraversing(codePath); diff --git a/tools/internal-rules/index.js b/tools/internal-rules/index.js new file mode 100644 index 00000000000..a3a3cd19971 --- /dev/null +++ b/tools/internal-rules/index.js @@ -0,0 +1,13 @@ +"use strict"; + +const fs = require("fs"); +const path = require("path"); + +module.exports = { + rules: Object.assign( + {}, + ...fs.readdirSync(__dirname) + .filter(filename => filename.endsWith(".js") && filename !== "index.js") + .map(filename => ({ [filename.replace(/\.js$/u, "")]: require(path.resolve(__dirname, filename)) })) + ) +}; diff --git a/tools/internal-rules/multiline-comment-style.js b/tools/internal-rules/multiline-comment-style.js index f0d5755e8cc..b0a0c9d854f 100644 --- a/tools/internal-rules/multiline-comment-style.js +++ b/tools/internal-rules/multiline-comment-style.js @@ -13,7 +13,7 @@ const multilineCommentStyle = require("../../lib/rules/multiline-comment-style") //------------------------------------------------------------------------------ // The `no-invalid-meta` internal rule has a false positive here. -// eslint-disable-next-line rulesdir/no-invalid-meta +// eslint-disable-next-line internal-rules/no-invalid-meta module.exports = ruleComposer.filterReports( multilineCommentStyle, (problem, metadata) => { diff --git a/tools/internal-rules/package.json b/tools/internal-rules/package.json new file mode 100644 index 00000000000..0d80ed2779f --- /dev/null +++ b/tools/internal-rules/package.json @@ -0,0 +1,8 @@ +{ + "name": "eslint-plugin-internal-rules", + "version": "0.0.0", + "private": true, + "dependencies": { + "eslint-rule-composer": "^0.3.0" + } +}