From 439d4454fbc2a598109e7626983c1999626a59e3 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Sun, 9 Nov 2025 00:07:19 +0900 Subject: [PATCH 1/2] feat: add "flat/all" --- packages/eslint-plugin/lib/configs/all.js | 10 ++++++++++ packages/eslint-plugin/lib/index.js | 13 +++++++++++++ packages/eslint-plugin/tests/configs.test.js | 11 +++++++++++ 3 files changed, 34 insertions(+) create mode 100644 packages/eslint-plugin/lib/configs/all.js diff --git a/packages/eslint-plugin/lib/configs/all.js b/packages/eslint-plugin/lib/configs/all.js new file mode 100644 index 00000000..75eb488b --- /dev/null +++ b/packages/eslint-plugin/lib/configs/all.js @@ -0,0 +1,10 @@ +const rules = require("../rules"); + +const allRules = Object.keys(rules).reduce((acc, ruleName) => { + acc[`@html-eslint/${ruleName}`] = "error"; + return acc; +}, /** @type {Record} */ ({})); + +module.exports = { + allRules, +}; diff --git a/packages/eslint-plugin/lib/index.js b/packages/eslint-plugin/lib/index.js index 0fbb0d0a..658651d8 100644 --- a/packages/eslint-plugin/lib/index.js +++ b/packages/eslint-plugin/lib/index.js @@ -3,6 +3,7 @@ const { recommendedRules, recommendedLegacyRules, } = require("./configs/recommended"); +const { allRules } = require("./configs/all"); const { HTMLLanguage } = require("./languages/html-language"); const { name, version } = require("../package.json"); const parser = require("@html-eslint/parser"); @@ -42,6 +43,18 @@ const plugin = { }, rules: recommendedLegacyRules, }, + "flat/all": { + plugins: { + /** @type {ESLint.Plugin} */ + get "@html-eslint"() { + return plugin; + }, + }, + languageOptions: { + parser, + }, + rules: allRules, + }, }, }; diff --git a/packages/eslint-plugin/tests/configs.test.js b/packages/eslint-plugin/tests/configs.test.js index 80a49ab5..f0ec3a26 100644 --- a/packages/eslint-plugin/tests/configs.test.js +++ b/packages/eslint-plugin/tests/configs.test.js @@ -6,6 +6,7 @@ const RULES_DIR = path.resolve(__dirname, "../lib/rules"); const RULE_TESTS_DIR = path.resolve(__dirname, "./rules"); const RULE_DOCS_DIR = path.resolve(__dirname, "../../../docs/rules"); const { recommendedLegacyRules } = require("../lib/configs/recommended"); +const { allRules } = require("../lib/configs/all"); describe("rules", () => { const exportedRuleNames = Object.keys(exportedRules); @@ -57,4 +58,14 @@ describe("configs", () => { expect.arrayContaining(recommendedRules) ); }); + + test("all rules should be included in the all config", () => { + const allExportedRules = Object.keys(exportedRules).map( + (name) => `@html-eslint/${name}` + ); + expect(Object.keys(allRules)).toEqual( + expect.arrayContaining(allExportedRules) + ); + expect(allExportedRules).toEqual(expect.arrayContaining(Object.keys(allRules))); + }); }); From c7abce71f8fddd3b56e7d167ae34759141880009 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Sun, 9 Nov 2025 00:08:37 +0900 Subject: [PATCH 2/2] Update configs.test.js --- packages/eslint-plugin/tests/configs.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/tests/configs.test.js b/packages/eslint-plugin/tests/configs.test.js index f0ec3a26..470d8358 100644 --- a/packages/eslint-plugin/tests/configs.test.js +++ b/packages/eslint-plugin/tests/configs.test.js @@ -66,6 +66,8 @@ describe("configs", () => { expect(Object.keys(allRules)).toEqual( expect.arrayContaining(allExportedRules) ); - expect(allExportedRules).toEqual(expect.arrayContaining(Object.keys(allRules))); + expect(allExportedRules).toEqual( + expect.arrayContaining(Object.keys(allRules)) + ); }); });