b37ad59fb91769bb590ec5829dade6800872973b
2 const { defineConfig
} = require('eslint-define-config')
4 module
.exports
= defineConfig({
10 plugins
: ['promise', 'prettierx', 'jsdoc', 'spellcheck'],
14 'plugin:import/recommended',
15 'plugin:jsdoc/recommended',
16 'plugin:promise/recommended',
17 'plugin:prettierx/standardx'
25 ignoreMemberSort
: true,
26 ignoreDeclarationSort
: true
30 'spellcheck/spell-checker': [
46 skipIfMatch
: ['^@.*', '^plugin:.*']
53 parser
: '@typescript-eslint/parser',
57 project
: './tsconfig.json'
59 plugins
: ['@typescript-eslint'],
61 'plugin:@typescript-eslint/eslint-recommended',
62 'plugin:@typescript-eslint/recommended',
63 'plugin:@typescript-eslint/recommended-requiring-type-checking',
64 'plugin:import/typescript'
67 // We have some intentionally empty functions
68 '@typescript-eslint/no-empty-function': 'off',
70 '@typescript-eslint/no-inferrable-types': [
72 { ignoreProperties
: true }
75 'no-useless-constructor': 'off',
77 'jsdoc/match-description': [
81 // '/^[A-Z`].+?(\\.|:)(\\n\\n.*((\\n{1,2}- .+)|(_.+_)|`.+`|\\n\\n---))?$/us',
82 // matchDescription: '^[A-Z`].+(\\.|`.+`)$',
90 'jsdoc/no-types': 'error',
91 'jsdoc/require-jsdoc': [
96 'ClassProperty:not([accessibility=/(private|protected)/])',
97 'ExportNamedDeclaration:has(VariableDeclaration)',
99 'MethodDefinition:not([accessibility=/(private|protected)/]) > FunctionExpression',
101 'TSInterfaceDeclaration',
103 // 'TSPropertySignature',
104 'TSTypeAliasDeclaration'
108 'jsdoc/require-param-type': 'off',
109 'jsdoc/require-returns-type': 'off'
114 extends: 'plugin:node/recommended'
117 files
: ['tests/**/*.js'],
119 'jsdoc/require-jsdoc': 'off'
123 files
: ['benchmarks/**/*.js'],
125 'jsdoc/require-jsdoc': 'off'
129 files
: ['examples/**/*.js'],
131 'node/no-missing-require': 'off',
132 'jsdoc/require-jsdoc': 'off'
136 files
: ['examples/typescript/**/*.ts'],
138 'import/no-unresolved': 'off',
139 'jsdoc/require-jsdoc': 'off'