48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
import eslint from '@eslint/js';
|
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
import unusedImports from 'eslint-plugin-unused-imports';
|
|
import tseslint from 'typescript-eslint';
|
|
|
|
import stylistic from '@stylistic/eslint-plugin';
|
|
|
|
export default tseslint.config(
|
|
{ ignores: ['node_modules/', 'dist/', 'build/', '.react-router/'] },
|
|
eslint.configs.recommended,
|
|
tseslint.configs.recommended,
|
|
stylistic.configs.customize({
|
|
indent: 2,
|
|
semi: true,
|
|
jsx: true,
|
|
braceStyle: '1tbs',
|
|
commaDangle: 'always-multiline',
|
|
quoteProps: 'as-needed',
|
|
arrowParens: true,
|
|
}),
|
|
reactHooks.configs.flat.recommended,
|
|
{
|
|
plugins: {
|
|
'unused-imports': unusedImports,
|
|
},
|
|
rules: {
|
|
'@stylistic/jsx-one-expression-per-line': 'off',
|
|
'@stylistic/multiline-ternary': 'off',
|
|
'react-hooks/set-state-in-effect': 'off',
|
|
'@typescript-eslint/no-empty-object-type': 'off',
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
'@typescript-eslint/no-unused-expressions': 'off',
|
|
'@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxEOF: 1 }],
|
|
'@stylistic/comma-dangle': 'off',
|
|
'@stylistic/semi': 'off',
|
|
'@stylistic/no-trailing-spaces': 'off',
|
|
'@typescript-eslint/no-unused-vars': 'off',
|
|
'unused-imports/no-unused-imports': 'error',
|
|
'unused-imports/no-unused-vars': ['warn', { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' }],
|
|
'@stylistic/arrow-parens': 'off',
|
|
'@stylistic/member-delimiter-style': 'off',
|
|
'@typescript-eslint/consistent-type-imports': 'off',
|
|
'@stylistic/max-statements-per-line': 'off',
|
|
'@stylistic/operator-linebreak': 'off',
|
|
},
|
|
},
|
|
);
|