2 const { defineConfig
} = require('eslint-define-config')
4 module
.exports
= defineConfig({
10 parser
: '@typescript-eslint/parser',
14 warnOnUnsupportedTypeScriptVersion
: false
26 'plugin:@typescript-eslint/recommended',
27 'plugin:import/errors',
28 'plugin:import/warnings',
29 'plugin:import/typescript',
30 'plugin:promise/recommended',
31 'plugin:prettierx/standardx',
32 'plugin:prettierx/@typescript-eslint'
37 // We have some intentionally empty functions
38 '@typescript-eslint/no-empty-function': 'off',
40 '@typescript-eslint/no-inferrable-types': [
42 { ignoreProperties
: true }
48 ignoreMemberSort
: true,
49 ignoreDeclarationSort
: true
53 'spellcheck/spell-checker': [
70 skipIfMatch
: ['^@.*', '^plugin:.*']
76 files
: ['src/**/*.ts'],
77 extends: 'plugin:jsdoc/recommended',
79 'no-useless-constructor': 'off',
81 'jsdoc/match-description': [
85 '/^[A-Z`].+?(\\.|:)(\\n\\n.*((\\n{1,2}- .+)|(_.+_)|`.+`|\\n\\n---))?$/us',
86 matchDescription
: '^[A-Z`].+(\\.|`.+`)$',
94 'jsdoc/no-types': 'error',
95 'jsdoc/require-jsdoc': [
100 'ClassProperty:not([accessibility=/(private|protected)/])',
101 'ExportNamedDeclaration:has(VariableDeclaration)',
102 'FunctionExpression',
103 'MethodDefinition:not([accessibility=/(private|protected)/]) > FunctionExpression',
105 'TSInterfaceDeclaration',
107 // 'TSPropertySignature',
108 'TSTypeAliasDeclaration'
112 'jsdoc/require-param-type': 'off',
113 'jsdoc/require-returns-type': 'off'
118 extends: 'plugin:node/recommended',
120 '@typescript-eslint/no-unused-vars': 'off',
121 '@typescript-eslint/no-var-requires': 'off'
125 files
: ['examples/typescript/**/*.ts'],
127 'import/no-unresolved': 'off'
131 files
: ['examples/**/*.js'],
133 'node/no-missing-require': 'off'