From 0983f6b29b6673539f68a27fedcbc7e134154100 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 1 Dec 2021 23:41:26 -0800 Subject: [PATCH] tools: use jsdoc recommended rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater --- .eslintrc.js | 18 +++++++++++++++++- Makefile | 4 ++-- vcbuild.bat | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 66a3148e75893d..019b042e8ed866 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -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', diff --git a/Makefile b/Makefile index 74a9e6bb16819f..6921895c5c3a75 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/vcbuild.bat b/vcbuild.bat index 49a05602d6ddc1..d1a9e592551593 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -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