tools: use jsdoc recommended rules

Enable all recommended JSDoc linting rules and disable the ones we don't
(yet?) meet. They can be enabled one by one by removing the lines that
turn them off.

This requires adding --max-warnings to the ESLint invocations in
Makefile and vcbuild.bat because the preset enables the recommended
rules as warnings and not errors.

PR-URL: https://github.com/nodejs/node/pull/41057
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
Rich Trott 2021-12-01 23:41:26 -08:00
parent 069d2bd250
commit 6dae965c2d
3 changed files with 20 additions and 4 deletions

View File

@ -35,6 +35,7 @@ Module._findPath = (request, paths, isMain) => {
module.exports = {
root: true,
extends: ['plugin:jsdoc/recommended'],
plugins: ['jsdoc', 'markdown', 'node-core'],
parser: '@babel/eslint-parser',
parserOptions: {
@ -338,7 +339,22 @@ module.exports = {
'valid-typeof': ['error', { requireStringLiterals: true }],
// JSDoc rules
'jsdoc/check-types': 'error',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/newline-after-description': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/valid-types': 'off',
'jsdoc/no-undefined-types': 'off',
'jsdoc/require-param': 'off',
'jsdoc/check-tag-names': 'off',
'jsdoc/require-returns': 'off',
'jsdoc/require-property-description': 'off',
'jsdoc/check-param-names': 'off',
'jsdoc/tag-lines': 'off',
'jsdoc/require-returns-type': 'off',
'jsdoc/check-alignment': 'off',
'jsdoc/require-returns-check': 'off',
'jsdoc/require-param-name': 'off',
// Custom rules from eslint-plugin-node-core
'node-core/no-unescaped-regexp-dot': 'error',

View File

@ -1268,7 +1268,7 @@ format-md:
LINT_JS_TARGETS = .eslintrc.js benchmark doc lib test tools
run-lint-js = tools/node_modules/eslint/bin/eslint.js --cache \
--report-unused-disable-directives $(LINT_JS_TARGETS)
--max-warnings=0 --report-unused-disable-directives $(LINT_JS_TARGETS)
run-lint-js-fix = $(run-lint-js) --fix
.PHONY: lint-js-fix
@ -1292,7 +1292,7 @@ jslint: lint-js
$(warning Please use lint-js instead of jslint)
run-lint-js-ci = tools/node_modules/eslint/bin/eslint.js \
--report-unused-disable-directives -f tap \
--max-warnings=0 --report-unused-disable-directives -f tap \
-o test-eslint.tap $(LINT_JS_TARGETS)
.PHONY: lint-js-ci

View File

@ -699,7 +699,7 @@ goto lint-js
if not defined lint_js goto lint-md-build
if not exist tools\node_modules\eslint goto no-lint
echo running lint-js
%node_exe% tools\node_modules\eslint\bin\eslint.js --cache --report-unused-disable-directives --rule "linebreak-style: 0" .eslintrc.js benchmark doc lib test tools
%node_exe% tools\node_modules\eslint\bin\eslint.js --cache --max-warnings=0 --report-unused-disable-directives --rule "linebreak-style: 0" .eslintrc.js benchmark doc lib test tools
goto lint-md-build
:no-lint