46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
/** @type {import('eslint').Linter.Config} */
|
|
module.exports = {
|
|
root: true,
|
|
parser: '@typescript-eslint/parser',
|
|
parserOptions: {
|
|
project: true,
|
|
tsconfigRootDir: __dirname,
|
|
ecmaVersion: 2024,
|
|
sourceType: 'module',
|
|
},
|
|
extends: [
|
|
'eslint:recommended',
|
|
'plugin:@typescript-eslint/recommended-type-checked',
|
|
'plugin:@typescript-eslint/stylistic-type-checked',
|
|
'plugin:react/recommended',
|
|
'plugin:react-hooks/recommended',
|
|
'plugin:jsx-a11y/recommended',
|
|
'next/core-web-vitals',
|
|
'prettier',
|
|
],
|
|
plugins: ['@typescript-eslint', 'react', 'jsx-a11y', 'import'],
|
|
rules: {
|
|
'react/react-in-jsx-scope': 'off',
|
|
'react/prop-types': 'off',
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'warn',
|
|
{argsIgnorePattern: '^_', varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_'},
|
|
],
|
|
'@typescript-eslint/consistent-type-imports': ['warn', {prefer: 'type-imports'}],
|
|
'import/order': [
|
|
'warn',
|
|
{
|
|
'groups': ['builtin', 'external', 'internal', 'parent', 'sibling'],
|
|
'newlines-between': 'always',
|
|
'alphabetize': {order: 'asc'},
|
|
},
|
|
],
|
|
},
|
|
settings: {
|
|
react: {
|
|
version: 'detect',
|
|
},
|
|
},
|
|
ignorePatterns: ['node_modules/', 'dist/', '.next/', '*.config.js', '*.config.ts'],
|
|
};
|