From 2b6b7b848b2806b1f32e9bf06c426625ef06a044 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Sat, 9 Dec 2023 12:18:12 -0500 Subject: [PATCH] docs: auto-generate configs list with eslint-doc-generator --- .eslint-doc-generatorrc.js | 2 ++ README.md | 20 +++++++++++++------- lib/configs/recommended-module.js | 1 + lib/configs/recommended-script.js | 1 + lib/configs/recommended.js | 2 ++ package.json | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.eslint-doc-generatorrc.js b/.eslint-doc-generatorrc.js index 526d133c..83d06d78 100644 --- a/.eslint-doc-generatorrc.js +++ b/.eslint-doc-generatorrc.js @@ -1,4 +1,6 @@ "use strict" + +/** @type {import('eslint-doc-generator').GenerateOptions} */ const config = { urlConfigs: "https://github.com/eslint-community/eslint-plugin-n#-configs", configEmoji: [ diff --git a/README.md b/README.md index d2296baf..31ef54ab 100644 --- a/README.md +++ b/README.md @@ -150,13 +150,19 @@ For [Shareable Configs](https://eslint.org/docs/latest/developer-guide/shareable ## 🔧 Configs -This plugin provides three configs: - -| Name | Description | -| :-- | :-- | -| `plugin:n/recommended` | Considers both CommonJS and ES Modules. If [`"type":"module"` field](https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff#b023) existed in package.json then it considers files as ES Modules. Otherwise it considers files as CommonJS. In addition, it considers `*.mjs` files as ES Modules and `*.cjs` files as CommonJS. | -| `plugin:n/recommended-module` | Considers all files as ES Modules. | -| `plugin:n/recommended-script` | Considers all files as CommonJS. | + + +| | Name | Description | +| :- | :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 🟠 | `flat/mixed-esm-and-cjs` | | +| ☑️ | `flat/recommended` | | +| 🟢 | `flat/recommended-module` | | +| ✅ | `flat/recommended-script` | | +| ☑️ | `recommended` | Considers both CommonJS and ES Modules. If [`"type":"module"` field](https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff#b023) existed in package.json then it considers files as ES Modules. Otherwise it considers files as CommonJS. In addition, it considers `*.mjs` files as ES Modules and `*.cjs` files as CommonJS. | +| 🟢 | `recommended-module` | Considers all files as ES Modules. | +| ✅ | `recommended-script` | Considers all files as CommonJS. | + + These preset configs: diff --git a/lib/configs/recommended-module.js b/lib/configs/recommended-module.js index bb6fb0c0..d4249b9b 100644 --- a/lib/configs/recommended-module.js +++ b/lib/configs/recommended-module.js @@ -4,6 +4,7 @@ const { commonGlobals, commonRules } = require("./_commons") // eslintrc config: https://eslint.org/docs/latest/use/configure/configuration-files module.exports.eslintrc = { + description: "Considers all files as ES Modules.", globals: { ...commonGlobals, __dirname: "off", diff --git a/lib/configs/recommended-script.js b/lib/configs/recommended-script.js index 2d7f7c5c..5c2255ae 100644 --- a/lib/configs/recommended-script.js +++ b/lib/configs/recommended-script.js @@ -4,6 +4,7 @@ const { commonGlobals, commonRules } = require("./_commons") // eslintrc config: https://eslint.org/docs/latest/use/configure/configuration-files module.exports.eslintrc = { + description: "Considers all files as CommonJS.", globals: { ...commonGlobals, __dirname: "readonly", diff --git a/lib/configs/recommended.js b/lib/configs/recommended.js index f0cdf423..a9772c62 100644 --- a/lib/configs/recommended.js +++ b/lib/configs/recommended.js @@ -10,6 +10,8 @@ const recommendedConfig = isModule ? moduleConfig : scriptConfig module.exports.eslintrc = { ...recommendedConfig.eslintrc, + description: + 'Considers both CommonJS and ES Modules. If [`"type":"module"` field](https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff#b023) existed in package.json then it considers files as ES Modules. Otherwise it considers files as CommonJS. In addition, it considers `*.mjs` files as ES Modules and `*.cjs` files as CommonJS.', overrides: [ { files: ["*.cjs", ".*.cjs"], ...scriptConfig.eslintrc }, { files: ["*.mjs", ".*.mjs"], ...moduleConfig.eslintrc }, diff --git a/package.json b/package.json index f0ecff97..217f5d99 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "esbuild": "^0.18.7", "eslint": "^8.43.0", "eslint-config-prettier": "^8.8.0", - "eslint-doc-generator": "^1.4.3", + "eslint-doc-generator": "^1.6.1", "eslint-plugin-eslint-plugin": "^5.1.0", "eslint-plugin-n": "file:.", "fast-glob": "^3.2.12",