From 11d2d41ccabb68e5a6b7624db4ec3944dce7c442 Mon Sep 17 00:00:00 2001 From: Toru Nagashima Date: Fri, 3 May 2019 17:47:51 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20tweak=20documents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/rules/file-extension-in-import.md | 3 +-- docs/rules/no-deprecated-api.md | 3 +-- docs/rules/no-extraneous-import.md | 3 +-- docs/rules/no-extraneous-require.md | 3 +-- docs/rules/no-hide-core-modules.md | 3 +-- docs/rules/no-missing-import.md | 3 +-- docs/rules/no-missing-require.md | 3 +-- docs/rules/no-unpublished-bin.md | 3 +-- docs/rules/no-unpublished-import.md | 3 +-- docs/rules/no-unpublished-require.md | 3 +-- docs/rules/no-unsupported-features.md | 3 +-- .../no-unsupported-features/es-builtins.md | 3 +-- .../no-unsupported-features/es-syntax.md | 3 +-- .../no-unsupported-features/node-builtins.md | 3 +-- docs/rules/process-exit-as-throw.md | 3 +-- docs/rules/shebang.md | 5 ++--- scripts/update-docs-header-and-footer.js | 21 ++++++++----------- 17 files changed, 26 insertions(+), 45 deletions(-) diff --git a/docs/rules/file-extension-in-import.md b/docs/rules/file-extension-in-import.md index 86185420..2a7cf896 100644 --- a/docs/rules/file-extension-in-import.md +++ b/docs/rules/file-extension-in-import.md @@ -1,7 +1,6 @@ # node/file-extension-in-import > enforce the style of file extensions in `import` declarations - -- ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule. +> - ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule. We can omit file extensions in `import`/`export` declarations. diff --git a/docs/rules/no-deprecated-api.md b/docs/rules/no-deprecated-api.md index dc1933df..236a796d 100644 --- a/docs/rules/no-deprecated-api.md +++ b/docs/rules/no-deprecated-api.md @@ -1,7 +1,6 @@ # node/no-deprecated-api > disallow deprecated APIs - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. Node has many deprecated API. The community is going to remove those API from Node in future, so we should not use those. diff --git a/docs/rules/no-extraneous-import.md b/docs/rules/no-extraneous-import.md index ed2df999..edf445d5 100644 --- a/docs/rules/no-extraneous-import.md +++ b/docs/rules/no-extraneous-import.md @@ -1,7 +1,6 @@ # node/no-extraneous-import > disallow `import` declarations which import extraneous modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. If an `import` declaration's source is extraneous (it's not written in `package.json`), the program works in local, but will not work after dependencies are re-installed. It will cause troubles to your team/contributors. This rule disallows `import` declarations of extraneous modules. diff --git a/docs/rules/no-extraneous-require.md b/docs/rules/no-extraneous-require.md index ad4d6413..3889fd55 100644 --- a/docs/rules/no-extraneous-require.md +++ b/docs/rules/no-extraneous-require.md @@ -1,7 +1,6 @@ # node/no-extraneous-require > disallow `require()` expressions which import extraneous modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. If a `require()`'s target is extraneous (it's not written in `package.json`), the program works in local, but will not work after dependencies are re-installed. It will cause troubles to your team/contributors. This rule disallows `require()` of extraneous modules. diff --git a/docs/rules/no-hide-core-modules.md b/docs/rules/no-hide-core-modules.md index 53ac4c3d..cc688b12 100644 --- a/docs/rules/no-hide-core-modules.md +++ b/docs/rules/no-hide-core-modules.md @@ -1,7 +1,6 @@ # node/no-hide-core-modules > disallow third-party modules which are hiding core modules - -- ⛔ This rule has been deprecated. +> - ⛔ This rule has been deprecated. **:warning: This is deprecated since v4.2.0.** This rule was based on an invalid assumption. See also [#69](https://github.com/mysticatea/eslint-plugin-node/issues/69). diff --git a/docs/rules/no-missing-import.md b/docs/rules/no-missing-import.md index 61559717..ed5cd127 100644 --- a/docs/rules/no-missing-import.md +++ b/docs/rules/no-missing-import.md @@ -1,7 +1,6 @@ # node/no-missing-import > disallow `import` declarations which import non-existence modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. This is similar to [no-missing-require](no-missing-require.md), but this rule handles `import` and `export` declarations. diff --git a/docs/rules/no-missing-require.md b/docs/rules/no-missing-require.md index e0d3d86b..16ef307e 100644 --- a/docs/rules/no-missing-require.md +++ b/docs/rules/no-missing-require.md @@ -1,7 +1,6 @@ # node/no-missing-require > disallow `require()` expressions which import non-existence modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. Maybe we cannot find typo of import paths until run it, so this rule checks import paths. diff --git a/docs/rules/no-unpublished-bin.md b/docs/rules/no-unpublished-bin.md index d121d608..0c61653d 100644 --- a/docs/rules/no-unpublished-bin.md +++ b/docs/rules/no-unpublished-bin.md @@ -1,7 +1,6 @@ # node/no-unpublished-bin > disallow `bin` files that npm ignores - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. We can publish CLI commands by `npm`. It uses `bin` field of `package.json`. diff --git a/docs/rules/no-unpublished-import.md b/docs/rules/no-unpublished-import.md index e596b596..074c1bc3 100644 --- a/docs/rules/no-unpublished-import.md +++ b/docs/rules/no-unpublished-import.md @@ -1,7 +1,6 @@ # node/no-unpublished-import > disallow `import` declarations which import private modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. This is similar to [no-unpublished-require](no-unpublished-require.md), but this rule handles `import` declarations. diff --git a/docs/rules/no-unpublished-require.md b/docs/rules/no-unpublished-require.md index e7a6a438..174a0017 100644 --- a/docs/rules/no-unpublished-require.md +++ b/docs/rules/no-unpublished-require.md @@ -1,7 +1,6 @@ # node/no-unpublished-require > disallow `require()` expressions which import private modules - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. If a `require()` expression's target is not published, the program works in local, but will not work after published to npm. This rule disallows `require()` expressions of unpublished files/modules. diff --git a/docs/rules/no-unsupported-features.md b/docs/rules/no-unsupported-features.md index f5e22c86..cbcdd651 100644 --- a/docs/rules/no-unsupported-features.md +++ b/docs/rules/no-unsupported-features.md @@ -1,7 +1,6 @@ # node/no-unsupported-features > disallow unsupported ECMAScript features on the specified version - -- ⛔ This rule has been deprecated. Use [node/no-unsupported-features/es-syntax](./no-unsupported-features/es-syntax.md) and [node/no-unsupported-features/es-builtins](./no-unsupported-features/es-builtins.md) instead. +> - ⛔ This rule has been deprecated. Use [node/no-unsupported-features/es-syntax](./no-unsupported-features/es-syntax.md) and [node/no-unsupported-features/es-builtins](./no-unsupported-features/es-builtins.md) instead. **:warning: This is deprecated since v7.0.0.** Use [node/no-unsupported-features/es-syntax](./no-unsupported-features/es-syntax.md) and [node/no-unsupported-features/es-builtins](./no-unsupported-features/es-builtins.md) instead. diff --git a/docs/rules/no-unsupported-features/es-builtins.md b/docs/rules/no-unsupported-features/es-builtins.md index c838b690..80e852a5 100644 --- a/docs/rules/no-unsupported-features/es-builtins.md +++ b/docs/rules/no-unsupported-features/es-builtins.md @@ -1,7 +1,6 @@ # node/no-unsupported-features/es-builtins > disallow unsupported ECMAScript built-ins on the specified version - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. ECMAScript standard is updating every two months. You can check [node.green](https://node.green/) to know which Node.js version supports each ECMAScript feature. diff --git a/docs/rules/no-unsupported-features/es-syntax.md b/docs/rules/no-unsupported-features/es-syntax.md index bab4148f..0b0652f7 100644 --- a/docs/rules/no-unsupported-features/es-syntax.md +++ b/docs/rules/no-unsupported-features/es-syntax.md @@ -1,7 +1,6 @@ # node/no-unsupported-features/es-syntax > disallow unsupported ECMAScript syntax on the specified version - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. ECMAScript standard is updating every two months. You can check [node.green](https://node.green/) to know which Node.js version supports each ECMAScript feature. diff --git a/docs/rules/no-unsupported-features/node-builtins.md b/docs/rules/no-unsupported-features/node-builtins.md index 7c80ccd0..0c99ce72 100644 --- a/docs/rules/no-unsupported-features/node-builtins.md +++ b/docs/rules/no-unsupported-features/node-builtins.md @@ -1,7 +1,6 @@ # node/no-unsupported-features/node-builtins > disallow unsupported Node.js built-in APIs on the specified version - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. Node.js community is improving built-in APIs continuously. You can check [Node.js Documentation](https://nodejs.org/api/) to know which Node.js version supports each Node.js API. diff --git a/docs/rules/process-exit-as-throw.md b/docs/rules/process-exit-as-throw.md index 595b337b..cf8f5945 100644 --- a/docs/rules/process-exit-as-throw.md +++ b/docs/rules/process-exit-as-throw.md @@ -1,7 +1,6 @@ # node/process-exit-as-throw > make `process.exit()` expressions the same code path as `throw` - -- ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. ## 📖 Rule Details diff --git a/docs/rules/shebang.md b/docs/rules/shebang.md index 1c0b9d30..c8c7377e 100644 --- a/docs/rules/shebang.md +++ b/docs/rules/shebang.md @@ -1,8 +1,7 @@ # node/shebang > suggest correct usage of shebang - -- ⭐️ This rule is included in `plugin:node/recommended` preset. -- ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule. +> - ⭐️ This rule is included in `plugin:node/recommended` preset. +> - ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule. When we make a CLI tool with Node.js, we add `bin` field to `package.json`, then we add a shebang the entry file. This rule suggests correct usage of shebang. diff --git a/scripts/update-docs-header-and-footer.js b/scripts/update-docs-header-and-footer.js index cb75d5d9..b4daea63 100644 --- a/scripts/update-docs-header-and-footer.js +++ b/scripts/update-docs-header-and-footer.js @@ -7,7 +7,7 @@ const fs = require("fs") const path = require("path") const { rules } = require("./rules") -const headerPattern = /^#.+\n(?:>.+\n)?(?:\n(?:-.+\n)+)?\n+/u +const headerPattern = /^#.+\n(?:>.+\n)*\n+/u const footerPattern = /\n+## 🔎 Implementation[\s\S]*$/u const ruleRoot = path.resolve(__dirname, "../lib/rules") const testRoot = path.resolve(__dirname, "../tests/lib/rules") @@ -22,17 +22,16 @@ const listFormatter = new Intl.ListFormat("en", { type: "conjunction" }) * @returns {string} The document header. */ function renderHeader(rule) { - const title = `# ${rule.id}\n> ${rule.description}` - const notes = [] + const lines = [`# ${rule.id}`, `> ${rule.description}`] if (rule.recommended) { - notes.push( - "- ⭐️ This rule is included in `plugin:node/recommended` preset." + lines.push( + "> - ⭐️ This rule is included in `plugin:node/recommended` preset." ) } if (rule.fixable) { - notes.push( - "- ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule." + lines.push( + "> - ✒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule." ) } if (rule.deprecated) { @@ -43,13 +42,11 @@ function renderHeader(rule) { replace.length === 0 ? "" : ` Use ${listFormatter.format(replace)} instead.` - notes.push(`- ⛔ This rule has been deprecated.${replaceText}`) + lines.push(`> - ⛔ This rule has been deprecated.${replaceText}`) } + lines.push("", "") - if (notes.length > 0) { - return `${title}\n\n${notes.join("\n")}\n\n` - } - return `${title}\n\n` + return lines.join("\n") } /**