diff --git a/src/next/blocks/blockESLint.test.ts b/src/next/blocks/blockESLint.test.ts index 4c24fa1b5..de6ba66a7 100644 --- a/src/next/blocks/blockESLint.test.ts +++ b/src/next/blocks/blockESLint.test.ts @@ -272,6 +272,7 @@ describe("blockESLint", () => { const creation = testBlock(blockESLint, { addons: { beforeLint: "Before lint.", + explanations: ["This is a great config!", "You should use it!"], extensions: [ "a.configs.recommended", { @@ -406,7 +407,13 @@ describe("blockESLint", () => { }, ], "files": { - "eslint.config.js": "import eslint from "@eslint/js"; + "eslint.config.js": "/* + This is a great config! + */ + /* + You should use it! + */ + import eslint from "@eslint/js"; import a from "eslint-plugin-markdown" import b from "eslint-plugin-regexp" import tseslint from "typescript-eslint"; diff --git a/src/next/blocks/blockESLint.ts b/src/next/blocks/blockESLint.ts index cbbf38ffd..65990ab6b 100644 --- a/src/next/blocks/blockESLint.ts +++ b/src/next/blocks/blockESLint.ts @@ -57,6 +57,7 @@ export const blockESLint = base.createBlock({ }, addons: { beforeLint: z.string().optional(), + explanations: z.array(z.string()).default([]), extensions: z.array(z.union([z.string(), zExtension])).default([]), ignores: z.array(z.string()).default([]), imports: z.array(zPackageImport).default([]), @@ -74,7 +75,8 @@ export const blockESLint = base.createBlock({ }; }, produce({ addons, options }) { - const { extensions, ignores, imports, rules, settings } = addons; + const { explanations, extensions, ignores, imports, rules, settings } = + addons; const importLines = [ 'import eslint from "@eslint/js";', @@ -197,7 +199,7 @@ Each should be shown in VS Code, and can be run manually on the command-line: }), ], files: { - "eslint.config.js": `${importLines.join("\n")} + "eslint.config.js": `${explanations.map((explanation) => `/*\n${explanation}\n*/\n`).join("")}${importLines.join("\n")} export default tseslint.config( { ignores: [${ignoreLines.join(", ")}] },