|
{
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"project": "./tsconfig.json"
|
|
},
|
|
"extends": [
|
|
"airbnb",
|
|
"airbnb-typescript",
|
|
"prettier",
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:react/recommended",
|
|
"plugin:react-hooks/recommended",
|
|
"plugin:@tanstack/query/recommended"
|
|
],
|
|
"plugins": [
|
|
"prettier"
|
|
],
|
|
"rules": {
|
|
"prettier/prettier": [
|
|
"error"
|
|
],
|
|
// Resolves https://stackoverflow.com/questions/59265981/typescript-eslint-missing-file-extension-ts-import-extensions/59268871
|
|
"import/extensions": [
|
|
"error",
|
|
"ignorePackages",
|
|
{
|
|
"": "never",
|
|
"ts": "never",
|
|
"tsx": "never"
|
|
}
|
|
]
|
|
},
|
|
"settings": {
|
|
"react": {
|
|
"version": "detect"
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": [
|
|
"*.ts",
|
|
"*.tsx"
|
|
],
|
|
"rules": {
|
|
// Allow state modification in reduce and Redux reducers
|
|
"no-param-reassign": [
|
|
"error",
|
|
{
|
|
"props": true,
|
|
"ignorePropertyModificationsFor": [
|
|
"acc",
|
|
"state"
|
|
]
|
|
}
|
|
],
|
|
// For https://stackoverflow.com/questions/55844608/stuck-with-eslint-error-i-e-separately-loops-should-be-avoided-in-favor-of-arra
|
|
"no-restricted-syntax": "off",
|
|
"react/require-default-props": "off",
|
|
"import/prefer-default-export": "off",
|
|
"no-underscore-dangle": "off",
|
|
"jsx-a11y/no-static-element-interactions": "off",
|
|
"jsx-a11y/click-events-have-key-events": "off",
|
|
// For https://github.com/airbnb/javascript/issues/1885
|
|
"jsx-a11y/label-has-associated-control": [
|
|
2,
|
|
{
|
|
"required": {
|
|
"some": [
|
|
"nesting",
|
|
"id"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"react/prop-types": "off",
|
|
"react/no-array-index-key": "off",
|
|
"react-hooks/exhaustive-deps": "off",
|
|
"import/no-extraneous-dependencies": "off",
|
|
"react/react-in-jsx-scope": "off"
|
|
},
|
|
"parserOptions": {
|
|
"project": [
|
|
"**/tsconfig.json"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|