85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
module.exports = {
|
|
root: true,
|
|
env: {
|
|
node: true,
|
|
es6: true,
|
|
},
|
|
parserOptions: { ecmaVersion: 8, sourceType: "module" },
|
|
ignorePatterns: ["node_modules/*"],
|
|
extends: ["eslint:recommended"],
|
|
overrides: [
|
|
{
|
|
files: ["**/*.ts", "**/*.tsx"],
|
|
parser: "@typescript-eslint/parser",
|
|
settings: {
|
|
react: { version: "detect" },
|
|
"import/resolver": {
|
|
typescript: {},
|
|
},
|
|
},
|
|
env: {
|
|
browser: true,
|
|
node: true,
|
|
es6: true,
|
|
},
|
|
extends: [
|
|
"eslint:recommended",
|
|
"plugin:import/errors",
|
|
"plugin:import/warnings",
|
|
"plugin:import/typescript",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:react/recommended",
|
|
"plugin:react-hooks/recommended",
|
|
"plugin:jsx-a11y/recommended",
|
|
"plugin:prettier/recommended",
|
|
"plugin:testing-library/react",
|
|
"plugin:jest-dom/recommended",
|
|
],
|
|
rules: {
|
|
"react/display-name": "off",
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
patterns: ["@/features/*/*"],
|
|
},
|
|
],
|
|
"linebreak-style": ["error", "unix"],
|
|
"react/prop-types": "off",
|
|
|
|
"import/order": [
|
|
"error",
|
|
{
|
|
groups: [
|
|
"builtin",
|
|
"external",
|
|
"internal",
|
|
"parent",
|
|
"sibling",
|
|
"index",
|
|
"object",
|
|
],
|
|
"newlines-between": "always",
|
|
alphabetize: { order: "asc", caseInsensitive: true },
|
|
},
|
|
],
|
|
"import/default": "off",
|
|
"import/no-named-as-default-member": "off",
|
|
"import/no-named-as-default": "off",
|
|
|
|
"react/react-in-jsx-scope": "off",
|
|
|
|
"jsx-a11y/anchor-is-valid": "off",
|
|
|
|
"@typescript-eslint/no-unused-vars": ["error"],
|
|
|
|
"@typescript-eslint/explicit-function-return-type": ["off"],
|
|
"@typescript-eslint/explicit-module-boundary-types": ["off"],
|
|
"@typescript-eslint/no-empty-function": ["off"],
|
|
"@typescript-eslint/no-explicit-any": ["off"],
|
|
|
|
"prettier/prettier": ["error", {}, { usePrettierrc: true }],
|
|
},
|
|
},
|
|
],
|
|
};
|