diff --git a/packages/eslint-config-basic/index.js b/packages/eslint-config-basic/index.js index f0980eeb74..93cfdee17f 100644 --- a/packages/eslint-config-basic/index.js +++ b/packages/eslint-config-basic/index.js @@ -16,6 +16,7 @@ module.exports = { 'plugin:jsonc/recommended-with-jsonc', 'plugin:yml/standard', 'plugin:markdown/recommended', + 'plugin:jsdoc/recommended', ], ignorePatterns: [ '*.min.*', @@ -55,6 +56,7 @@ module.exports = { 'antfu', 'no-only-tests', 'unused-imports', + 'jsdoc', ], settings: { 'import/resolver': { @@ -407,11 +409,17 @@ module.exports = { 'yml/quotes': ['error', { prefer: 'single', avoidEscape: false }], 'yml/no-empty-document': 'off', + // jsdoc + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-param-type': 'off', + 'jsdoc/require-param-description': 'off', + 'jsdoc/require-yields': 'off', + 'jsdoc/tag-lines': 'off', + // antfu 'antfu/no-import-node-modules-by-path': 'error', 'antfu/if-newline': 'error', 'antfu/import-dedupe': 'error', 'antfu/top-level-function': 'error', - // 'antfu/prefer-inline-type-import': 'error', }, } diff --git a/packages/eslint-config-basic/package.json b/packages/eslint-config-basic/package.json index 48bcf52200..487b3d289d 100644 --- a/packages/eslint-config-basic/package.json +++ b/packages/eslint-config-basic/package.json @@ -23,6 +23,7 @@ "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "npm:eslint-plugin-i@2.28.0-2", + "eslint-plugin-jsdoc": "^46.6.0", "eslint-plugin-jsonc": "^2.9.0", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-n": "^16.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b358ccfd04..baa28986bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,9 @@ importers: eslint-plugin-import: specifier: npm:eslint-plugin-i@2.28.0-2 version: /eslint-plugin-i@2.28.0-2(@typescript-eslint/parser@6.4.1)(eslint@8.47.0) + eslint-plugin-jsdoc: + specifier: ^46.6.0 + version: 46.6.0(eslint@8.47.0) eslint-plugin-jsonc: specifier: ^2.9.0 version: 2.9.0(eslint@8.47.0) @@ -199,7 +202,7 @@ importers: version: 20.5.3 '@typescript-eslint/rule-tester': specifier: ^6.4.1 - version: 6.4.1(@eslint/eslintrc@2.1.1)(eslint@8.47.0)(typescript@5.1.6) + version: 6.4.1(@eslint/eslintrc@2.1.2)(eslint@8.47.0)(typescript@5.1.6) unbuild: specifier: ^2.0.0 version: 2.0.0(typescript@5.1.6) @@ -434,6 +437,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@es-joy/jsdoccomment@0.40.1: + resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.0 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: false + /@esbuild/android-arm64@0.17.17: resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} engines: {node: '>=12'} @@ -1041,23 +1053,6 @@ packages: resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/eslintrc@2.1.2: resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1424,14 +1419,14 @@ packages: - supports-color dev: false - /@typescript-eslint/rule-tester@6.4.1(@eslint/eslintrc@2.1.1)(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/rule-tester@6.4.1(@eslint/eslintrc@2.1.2)(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-pP7QnJ/uNB3nOoiPvMaRC0XcwlLxVVWC49lQfxkxMmthT7XTSWJ4G1edmDW47Ue1PxoP5ShoO0PxK1ZN5+NjAA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@eslint/eslintrc': '>=2' eslint: '>=8' dependencies: - '@eslint/eslintrc': 2.1.1 + '@eslint/eslintrc': 2.1.2 '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.1.6) ajv: 6.12.6 @@ -1757,6 +1752,11 @@ packages: picomatch: 2.3.1 dev: true + /are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + dev: false + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2056,6 +2056,11 @@ packages: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true + /comment-parser@1.4.0: + resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} + engines: {node: '>= 12.0.0'} + dev: false + /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -2556,6 +2561,26 @@ packages: - typescript dev: false + /eslint-plugin-jsdoc@46.6.0(eslint@8.47.0): + resolution: {integrity: sha512-T/1gzsvnX45qABzyPEonEhFDttkTn7Igm/X89TXIkTLBOsNl2GYtyBqQPZGXZZ8J5VBzEhiCMvI2P2kXX4dnFw==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.40.1 + are-docs-informative: 0.0.2 + comment-parser: 1.4.0 + debug: 4.3.4 + escape-string-regexp: 4.0.0 + eslint: 8.47.0 + esquery: 1.5.0 + is-builtin-module: 3.2.1 + semver: 7.5.4 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /eslint-plugin-jsonc@2.9.0(eslint@8.47.0): resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3484,6 +3509,11 @@ packages: dependencies: argparse: 2.0.1 + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + dev: false + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true