2 const { defineConfig
} = require('eslint-define-config')
4 module
.exports
= defineConfig({
10 parser
: '@typescript-eslint/parser',
14 warnOnUnsupportedTypeScriptVersion
: false
26 'plugin:import/recommended',
27 'plugin:jsdoc/recommended',
28 'plugin:promise/recommended',
29 'plugin:prettierx/standardx'
37 ignoreMemberSort
: true,
38 ignoreDeclarationSort
: true
42 'spellcheck/spell-checker': [
58 skipIfMatch
: ['^@.*', '^plugin:.*']
66 'plugin:@typescript-eslint/recommended',
67 'plugin:import/typescript'
70 // We have some intentionally empty functions
71 '@typescript-eslint/no-empty-function': 'off',
73 '@typescript-eslint/no-inferrable-types': [
75 { ignoreProperties
: true }
78 'no-useless-constructor': 'off',
80 'jsdoc/match-description': [
84 // '/^[A-Z`].+?(\\.|:)(\\n\\n.*((\\n{1,2}- .+)|(_.+_)|`.+`|\\n\\n---))?$/us',
85 // matchDescription: '^[A-Z`].+(\\.|`.+`)$',
93 'jsdoc/no-types': 'error',
94 'jsdoc/require-jsdoc': [
99 'ClassProperty:not([accessibility=/(private|protected)/])',
100 'ExportNamedDeclaration:has(VariableDeclaration)',
101 'FunctionExpression',
102 'MethodDefinition:not([accessibility=/(private|protected)/]) > FunctionExpression',
104 'TSInterfaceDeclaration',
106 // 'TSPropertySignature',
107 'TSTypeAliasDeclaration'
111 'jsdoc/require-param-type': 'off',
112 'jsdoc/require-returns-type': 'off'
117 extends: 'plugin:node/recommended'
120 files
: ['tests/**/*.js'],
122 'jsdoc/require-jsdoc': 'off'
126 files
: ['benchmarks/**/*.js'],
128 'jsdoc/require-jsdoc': 'off'
132 files
: ['examples/**/*.js'],
134 'node/no-missing-require': 'off',
135 'jsdoc/require-jsdoc': 'off'
139 files
: ['examples/typescript/**/*.ts'],
141 'import/no-unresolved': 'off',
142 'jsdoc/require-jsdoc': 'off'