2 const { defineConfig
} = require('eslint-define-config')
4 module
.exports
= defineConfig({
15 plugins
: ['promise', 'prettierx', 'jsdoc', 'spellcheck'],
19 'plugin:import/recommended',
20 'plugin:jsdoc/recommended',
21 'plugin:promise/recommended',
22 'plugin:prettierx/standardx'
30 ignoreMemberSort
: true,
31 ignoreDeclarationSort
: true
35 'spellcheck/spell-checker': [
71 skipIfMatch
: ['^@.*', '^plugin:.*']
78 parser
: '@typescript-eslint/parser',
80 project
: './tsconfig.json'
82 plugins
: ['@typescript-eslint'],
84 'plugin:@typescript-eslint/eslint-recommended',
85 'plugin:@typescript-eslint/recommended',
86 'plugin:@typescript-eslint/recommended-requiring-type-checking',
87 'plugin:import/typescript'
90 // We have some intentionally empty functions
91 '@typescript-eslint/no-empty-function': 'off',
93 '@typescript-eslint/no-inferrable-types': [
95 { ignoreProperties
: true }
98 'no-useless-constructor': 'off',
100 'jsdoc/match-description': [
110 'jsdoc/no-types': 'error',
111 'jsdoc/require-jsdoc': [
116 'ClassProperty:not([accessibility=/(private|protected)/])',
117 'ExportNamedDeclaration:has(VariableDeclaration)',
118 'FunctionExpression',
119 'MethodDefinition:not([accessibility=/(private|protected)/]) > FunctionExpression',
121 'TSInterfaceDeclaration',
123 // 'TSPropertySignature',
124 'TSTypeAliasDeclaration'
128 'jsdoc/require-param-type': 'off',
129 'jsdoc/require-returns-type': 'off'
133 files
: ['examples/typescript/**/*.ts'],
135 'import/no-unresolved': 'off',
136 'jsdoc/require-jsdoc': 'off',
137 '@typescript-eslint/no-unsafe-argument': 'off',
138 '@typescript-eslint/no-unsafe-call': 'off',
139 '@typescript-eslint/no-unsafe-assignment': 'off'
144 extends: ['plugin:n/recommended']
147 files
: ['tests/**/*.js'],
149 'jsdoc/require-jsdoc': 'off'
153 files
: ['tests/pools/selection-strategies/**/*.js'],
155 'n/no-missing-require': 'off'
159 files
: ['benchmarks/**/*.js'],
161 'jsdoc/require-jsdoc': 'off'
165 files
: ['benchmarks/versus-external-pools/**/*.js'],
167 'n/no-missing-require': 'off'
171 files
: ['examples/**/*.js'],
173 'n/no-missing-require': 'off',
174 'jsdoc/require-jsdoc': 'off'