X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=.eslintrc.js;h=15fcb940ae0e8025076ceebc05196192d900e010;hb=4f4ae1cb3c33228a023ea599c2648268d15e6c0f;hp=6c8063c8a5dcb3da31ee2f12a826b4017263bdfb;hpb=5c5a1fb79906f18560012263239e7bd611ee8d2b;p=poolifier.git diff --git a/.eslintrc.js b/.eslintrc.js index 6c8063c8..15fcb940 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,7 @@ -module.exports = { +// @ts-check +const { defineConfig } = require('eslint-define-config') + +module.exports = defineConfig({ env: { es2021: true, node: true, @@ -7,7 +10,8 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 2020, - sourceType: 'module' + sourceType: 'module', + warnOnUnsupportedTypeScriptVersion: false }, plugins: [ '@typescript-eslint', @@ -24,8 +28,7 @@ module.exports = { 'plugin:import/warnings', 'plugin:import/typescript', 'plugin:promise/recommended', - 'plugin:prettierx/standardx', - 'plugin:prettierx/@typescript-eslint' + 'plugin:prettierx/standardx' ], rules: { 'no-void': 'off', @@ -50,11 +53,13 @@ module.exports = { 'warn', { skipWords: [ - 'poolifier', - 'pioardi', 'christopher', + 'comparator', 'ecma', + 'enum', + 'inheritdoc', 'jsdoc', + 'poolifier', 'readonly', 'serializable', 'unregister', @@ -69,7 +74,39 @@ module.exports = { files: ['src/**/*.ts'], extends: 'plugin:jsdoc/recommended', rules: { + 'no-useless-constructor': 'off', + + 'jsdoc/match-description': [ + 'warn', + { + mainDescription: + '/^[A-Z`].+?(\\.|:)(\\n\\n.*((\\n{1,2}- .+)|(_.+_)|`.+`|\\n\\n---))?$/us', + matchDescription: '^[A-Z`].+(\\.|`.+`)$', + contexts: ['any'], + tags: { + param: true, + returns: true + } + } + ], 'jsdoc/no-types': 'error', + 'jsdoc/require-jsdoc': [ + 'warn', + { + contexts: [ + 'ClassDeclaration', + 'ClassProperty:not([accessibility=/(private|protected)/])', + 'ExportNamedDeclaration:has(VariableDeclaration)', + 'FunctionExpression', + 'MethodDefinition:not([accessibility=/(private|protected)/]) > FunctionExpression', + 'TSEnumDeclaration', + 'TSInterfaceDeclaration', + 'TSMethodSignature', + // 'TSPropertySignature', + 'TSTypeAliasDeclaration' + ] + } + ], 'jsdoc/require-param-type': 'off', 'jsdoc/require-returns-type': 'off' } @@ -94,5 +131,10 @@ module.exports = { 'node/no-missing-require': 'off' } } - ] -} + ], + settings: { + jsdoc: { + mode: 'typescript' + } + } +})