From d77cd88f61b7a221ec8042a71c5a16a62255b47f Mon Sep 17 00:00:00 2001 From: Teddy Katz Date: Fri, 25 Aug 2017 23:25:12 -0400 Subject: [PATCH] Chore: use eslint-plugin-rulesdir instead of --rulesdir for self-linting --- .eslintignore | 1 + .eslintrc.js | 29 +++++++++++++++++++ .eslintrc.yml | 17 ----------- Makefile.js | 8 ++++- lib/internal-rules/.eslintrc.yml | 4 +-- ...tion.js => consistent-docs-description.js} | 0 ...-no-invalid-meta.js => no-invalid-meta.js} | 0 lib/rules/.eslintrc.yml | 4 +-- package.json | 1 + tests/lib/cli-engine.js | 4 +-- ...tion.js => consistent-docs-description.js} | 2 +- ...-no-invalid-meta.js => no-invalid-meta.js} | 2 +- 12 files changed, 46 insertions(+), 26 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 .eslintrc.yml rename lib/internal-rules/{internal-consistent-docs-description.js => consistent-docs-description.js} (100%) rename lib/internal-rules/{internal-no-invalid-meta.js => no-invalid-meta.js} (100%) rename tests/lib/internal-rules/{internal-consistent-docs-description.js => consistent-docs-description.js} (98%) rename tests/lib/internal-rules/{internal-no-invalid-meta.js => no-invalid-meta.js} (98%) diff --git a/.eslintignore b/.eslintignore index 93bcf0b4061..59229ab0f14 100644 --- a/.eslintignore +++ b/.eslintignore @@ -8,3 +8,4 @@ /tests/performance/** /tmp/** test.js +!.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000000..e9dc5cb930b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,29 @@ +"use strict"; + +const path = require("path"); +const rulesDirPlugin = require("eslint-plugin-rulesdir"); + +rulesDirPlugin.RULES_DIR = path.join(__dirname, "lib/internal-rules"); + +module.exports = { + root: true, + plugins: [ + "eslint-plugin", + "node", + "rulesdir" + ], + extends: [ + "./packages/eslint-config-eslint/default.yml", + "plugin:node/recommended", + "plugin:eslint-plugin/recommended" + ], + rules: { + "eslint-plugin/consistent-output": "error", + "eslint-plugin/no-identical-tests": "error", + "eslint-plugin/prefer-output-null": "error", + "eslint-plugin/prefer-placeholders": "error", + "eslint-plugin/report-message-format": ["error", "[^a-z].*\\.$"], + "eslint-plugin/test-case-property-ordering": "error", + "eslint-plugin/test-case-shorthand-strings": "error" + } +}; diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index d7b0e414b0b..00000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,17 +0,0 @@ -root: true - -plugins: - - eslint-plugin - - node -extends: - - "./packages/eslint-config-eslint/default.yml" - - "plugin:node/recommended" - - "plugin:eslint-plugin/recommended" -rules: - eslint-plugin/consistent-output: "error" - eslint-plugin/no-identical-tests: "error" - eslint-plugin/prefer-output-null: "error" - eslint-plugin/prefer-placeholders: "error" - eslint-plugin/report-message-format: ["error", '[^a-z].*\.$'] - eslint-plugin/test-case-property-ordering: "error" - eslint-plugin/test-case-shorthand-strings: "error" diff --git a/Makefile.js b/Makefile.js index bf175d26116..db9def72f5d 100644 --- a/Makefile.js +++ b/Makefile.js @@ -59,7 +59,7 @@ const NODE = "node ", // intentional extra space // Utilities - intentional extra space at the end of each string MOCHA = `${NODE_MODULES}mocha/bin/_mocha `, - ESLINT = `${NODE} bin/eslint.js --rulesdir lib/internal-rules/ `, + ESLINT = `${NODE} bin/eslint.js `, // Files MAKEFILE = "./Makefile.js", @@ -514,6 +514,12 @@ target.lint = function() { errors++; } + echo("Validating .eslintrc.js"); + lastReturn = exec(`${ESLINT} .eslintrc.js`); + if (lastReturn.code !== 0) { + errors++; + } + echo("Validating JSON Files"); lodash.forEach(JSON_FILES, validateJsonFile); diff --git a/lib/internal-rules/.eslintrc.yml b/lib/internal-rules/.eslintrc.yml index 22d3a30ce32..2a8d907935b 100644 --- a/lib/internal-rules/.eslintrc.yml +++ b/lib/internal-rules/.eslintrc.yml @@ -1,3 +1,3 @@ rules: - internal-no-invalid-meta: "error" - internal-consistent-docs-description: "error" + rulesdir/no-invalid-meta: "error" + rulesdir/consistent-docs-description: "error" diff --git a/lib/internal-rules/internal-consistent-docs-description.js b/lib/internal-rules/consistent-docs-description.js similarity index 100% rename from lib/internal-rules/internal-consistent-docs-description.js rename to lib/internal-rules/consistent-docs-description.js diff --git a/lib/internal-rules/internal-no-invalid-meta.js b/lib/internal-rules/no-invalid-meta.js similarity index 100% rename from lib/internal-rules/internal-no-invalid-meta.js rename to lib/internal-rules/no-invalid-meta.js diff --git a/lib/rules/.eslintrc.yml b/lib/rules/.eslintrc.yml index 22d3a30ce32..2a8d907935b 100644 --- a/lib/rules/.eslintrc.yml +++ b/lib/rules/.eslintrc.yml @@ -1,3 +1,3 @@ rules: - internal-no-invalid-meta: "error" - internal-consistent-docs-description: "error" + rulesdir/no-invalid-meta: "error" + rulesdir/consistent-docs-description: "error" diff --git a/package.json b/package.json index 28c0d7ab482..1349e7185a9 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "ejs": "^2.5.6", "eslint-plugin-eslint-plugin": "^0.8.0", "eslint-plugin-node": "^5.1.0", + "eslint-plugin-rulesdir": "^0.1.0", "eslint-release": "^0.10.1", "eslump": "1.6.0", "esprima": "^3.1.3", diff --git a/tests/lib/cli-engine.js b/tests/lib/cli-engine.js index 419df9eef21..cc2334fa7b5 100644 --- a/tests/lib/cli-engine.js +++ b/tests/lib/cli-engine.js @@ -592,7 +592,7 @@ describe("CLIEngine", () => { engine = new CLIEngine({ cwd: originalDir, - configFile: ".eslintrc.yml" + configFile: ".eslintrc.js" }); const report = engine.executeOnFiles(["lib/cli*.js"]); @@ -606,7 +606,7 @@ describe("CLIEngine", () => { engine = new CLIEngine({ cwd: originalDir, - configFile: ".eslintrc.yml" + configFile: ".eslintrc.js" }); const report = engine.executeOnFiles(["lib/cli*.js", "lib/cli.?s", "lib/{cli,cli-engine}.js"]); diff --git a/tests/lib/internal-rules/internal-consistent-docs-description.js b/tests/lib/internal-rules/consistent-docs-description.js similarity index 98% rename from tests/lib/internal-rules/internal-consistent-docs-description.js rename to tests/lib/internal-rules/consistent-docs-description.js index de32c71a901..231fb4a331e 100644 --- a/tests/lib/internal-rules/internal-consistent-docs-description.js +++ b/tests/lib/internal-rules/consistent-docs-description.js @@ -9,7 +9,7 @@ // Requirements //------------------------------------------------------------------------------ -const rule = require("../../../lib/internal-rules/internal-consistent-docs-description"), +const rule = require("../../../lib/internal-rules/consistent-docs-description"), RuleTester = require("../../../lib/testers/rule-tester"); //------------------------------------------------------------------------------ diff --git a/tests/lib/internal-rules/internal-no-invalid-meta.js b/tests/lib/internal-rules/no-invalid-meta.js similarity index 98% rename from tests/lib/internal-rules/internal-no-invalid-meta.js rename to tests/lib/internal-rules/no-invalid-meta.js index 6dd44ea2ff5..b072f871c32 100644 --- a/tests/lib/internal-rules/internal-no-invalid-meta.js +++ b/tests/lib/internal-rules/no-invalid-meta.js @@ -9,7 +9,7 @@ // Requirements //------------------------------------------------------------------------------ -const rule = require("../../../lib/internal-rules/internal-no-invalid-meta"), +const rule = require("../../../lib/internal-rules/no-invalid-meta"), RuleTester = require("../../../lib/testers/rule-tester"); //------------------------------------------------------------------------------