maccounter

Форк
0
/
.eslintrc.js 
119 строк · 3.5 Кб
1
const indent = [2, 4]
2

3
module.exports = {
4
    globals: {
5
        JSX: 'readonly',
6
    },
7
    env: {
8
        browser: true,
9
        es2021: true,
10
        jest: true,
11
    },
12
    extends: [
13
        'plugin:jest/recommended',
14
        'plugin:react/recommended',
15
        'plugin:json/recommended',
16
        'plugin:@typescript-eslint/recommended',
17
        'airbnb',
18
        'airbnb/rules/react',
19
        'airbnb/rules/react-hooks',
20
        'plugin:css-modules/recommended',
21
    ],
22
    parser: '@typescript-eslint/parser',
23
    parserOptions: {
24
        ecmaFeatures: {
25
            jsx: true,
26
        },
27
        ecmaVersion: 12,
28
        sourceType: 'module',
29
        project: './tsconfig.json',
30
    },
31
    settings: {
32
        react: {
33
            version: 'detect',
34
        },
35
        'import/resolver': {
36
            typescript: {
37
                alwaysTryTypes: true,
38
                project: './tsconfig.json',
39
            },
40
            node: {
41
                extensions: ['.ts', '.tsx', '.js', '.jsx', '.svg'],
42
            },
43
        },
44
    },
45
    plugins: [
46
        'react',
47
        '@typescript-eslint',
48
        'import',
49
        'css-modules',
50
    ],
51
    rules: {
52
        'no-shadow': 0,
53
        'no-unused-vars': 0,
54
        '@typescript-eslint/no-shadow': [2],
55
        'import/extensions': [2, 'never', {
56
            svg: 'always',
57
            json: 'always'
58
        }],
59
        'import/no-extraneous-dependencies': 0,
60
        'import/prefer-default-export': 0,
61
        'react/jsx-filename-extension': [2, { extensions: ['.tsx'] }],
62
        'object-curly-newline': 0,
63
        'max-len': [1, {
64
            code: 120,
65
            tabWidth: 4,
66
            ignoreUrls: true,
67
            ignoreComments: true,
68
            ignorePattern: 'd\..*$'
69
        }],
70
        indent: 0,
71
        'react/jsx-indent': indent,
72
        'react/jsx-indent-props': indent,
73
        curly: ['error', 'all'],
74
        '@typescript-eslint/indent': indent,
75
        '@typescript-eslint/member-delimiter-style': [2, {
76
            multiline: {
77
                delimiter: 'none',
78
            },
79
            singleline: {
80
                delimiter: 'comma',
81
            }
82
        }],
83
        '@typescript-eslint/no-unused-vars': [1, {
84
            argsIgnorePattern: '_'
85
        }],
86
        'jsx-a11y/label-has-associated-control': [0, {
87
            labelComponents: ['CustomInputLabel'],
88
            labelAttributes: ['label'],
89
            controlComponents: ['CustomInput'],
90
            depth: 3,
91
        }],
92
        'jsx-a11y/no-static-element-interactions': 0,
93
        'jsx-a11y/click-events-have-key-events': 0,
94
        'jsx-a11y/no-noninteractive-element-interactions': 0,
95
        'react/jsx-props-no-spreading': 0,
96
        'no-use-before-define': 0,
97
        'react/prop-types': 0,
98
        '@typescript-eslint/consistent-type-exports': 2,
99
        'jest/valid-title': [1, {
100
            ignoreTypeOfDescribeName: true,
101
        }],
102
        'jest/no-done-callback': 1,
103
        'jest/no-export': 0,
104
        'react/jsx-uses-react': 0,
105
        'react/react-in-jsx-scope': 0,
106
        'react/jsx-fragments': [2, 'element'],
107
        'react/no-unknown-property': [2, {
108
            ignore: ['css']
109
        }],
110
        'react/function-component-definition': 0,
111
        'react/jsx-no-useless-fragment': 1,
112
        'react/no-unstable-nested-components': 1,
113
        'react/require-default-props': 0,
114
        'react/jsx-no-constructed-context-values': 1,
115
        'css-modules/no-unused-class': [1, { camelCase: true }],
116
        'css-modules/no-undef-class': [1, { camelCase: true }],
117
        'semi': 0,
118
    },
119
}
120

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.