-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
.eslintrc.js
50 lines (50 loc) · 1.53 KB
/
.eslintrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
module.exports = {
env: {
browser: true,
node: true,
es2021: true,
},
settings: {
react: {
version: 'detect',
},
},
extends: ['eslint:recommended', './rules/index.js', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 2021,
sourceType: 'module',
},
plugins: ['react', '@typescript-eslint', 'jsx-a11y'],
rules: {
'max-len': ['error', { code: 160 }],
'linebreak-style': ['error', 'windows'],
semi: ['error', 'never'],
'jsx-a11y/anchor-is-valid': [
'error',
{
components: ['Link'],
specialLink: ['url'],
aspects: ['noHref', 'invalidHref', 'preferButton'],
},
],
curly: ['error', 'multi-line', 'consistent'],
'no-use-before-define': 'off',
'@typescript-eslint/no-use-before-define': 'off',
// ESLint doesn't detect our TS prop validation
// See: https://github.com/yannickcr/eslint-plugin-react/issues/2353
'react/prop-types': 'off',
'@typescript-eslint/ban-ts-comment': ['error', { 'ts-expect-error': 'allow-with-description' }],
'no-unused-vars': 'off',
'babel/new-cap': 'off',
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',
indent: 'off',
'no-duplicate-imports': 'off',
'@typescript-eslint/no-duplicate-imports': ['error'],
'no-console': process.env.NODE_ENV === 'development' ? 'off' : ['error', { allow: ['error', 'warn', 'trace'] }],
},
}