2020-03-18 11:59:15 +03:00
|
|
|
{
|
2020-10-05 12:01:10 +03:00
|
|
|
"extends": [
|
|
|
|
"airbnb",
|
|
|
|
"prettier"
|
|
|
|
],
|
2018-06-28 07:57:37 +03:00
|
|
|
"env": {
|
|
|
|
"browser": true,
|
|
|
|
"node": true,
|
2022-04-06 12:20:20 +03:00
|
|
|
"mocha": true,
|
|
|
|
"jest": true
|
2018-06-28 07:57:37 +03:00
|
|
|
},
|
2020-04-06 14:23:04 +03:00
|
|
|
"parser": "babel-eslint",
|
2018-06-28 07:57:37 +03:00
|
|
|
"rules": {
|
2022-08-11 16:05:15 +03:00
|
|
|
"no-useless-escape": 0,
|
2020-03-18 11:59:15 +03:00
|
|
|
"allowForLoopAfterthoughts": 0,
|
2018-06-28 07:57:37 +03:00
|
|
|
"react/no-multi-comp": 0,
|
2021-11-11 16:35:16 +03:00
|
|
|
"import/order": 0,
|
2018-06-28 07:57:37 +03:00
|
|
|
"import/default": 0,
|
|
|
|
"import/no-duplicates": 0,
|
|
|
|
"import/named": 0,
|
|
|
|
"import/first": 0,
|
|
|
|
"import/namespace": 0,
|
|
|
|
"import/no-unresolved": 0,
|
|
|
|
"import/no-named-as-default": 2,
|
|
|
|
"import/extensions": 0,
|
|
|
|
"import/no-extraneous-dependencies": 0,
|
|
|
|
"import/prefer-default-export": 0,
|
|
|
|
"comma-dangle": 0,
|
2020-10-05 12:01:10 +03:00
|
|
|
"id-length": [
|
|
|
|
1,
|
|
|
|
{
|
|
|
|
"min": 1,
|
|
|
|
"properties": "never"
|
|
|
|
}
|
|
|
|
],
|
2022-08-17 17:35:48 +03:00
|
|
|
"consistent-return": "off",
|
2020-04-06 14:23:04 +03:00
|
|
|
"indent": "off",
|
2018-06-28 07:57:37 +03:00
|
|
|
"no-console": 0,
|
|
|
|
"arrow-parens": 0,
|
|
|
|
"no-alert": 0,
|
|
|
|
"no-plusplus": 0,
|
|
|
|
"no-unsafe-negation": 0,
|
|
|
|
"no-loop-func": 0,
|
|
|
|
"no-lonely-if": 0,
|
|
|
|
"no-bitwise": 0,
|
|
|
|
"global-require": 0,
|
|
|
|
"no-param-reassign": 0,
|
|
|
|
"no-underscore-dangle": 0,
|
|
|
|
"no-useless-return": 0,
|
|
|
|
"no-restricted-syntax": 0,
|
|
|
|
"no-prototype-builtins": 0,
|
|
|
|
"array-callback-return": 0,
|
|
|
|
"no-useless-concat": 0,
|
|
|
|
"class-methods-use-this": 0,
|
|
|
|
"arrow-body-style": 0,
|
|
|
|
"prefer-template": 0,
|
|
|
|
"prefer-spread": 0,
|
|
|
|
"object-shorthand": 0,
|
2018-12-17 15:07:58 +03:00
|
|
|
"camelcase": 0,
|
2018-06-28 07:57:37 +03:00
|
|
|
"object-curly-newline": 0,
|
|
|
|
"spaced-comment": 0,
|
2020-10-05 12:01:10 +03:00
|
|
|
"prefer-destructuring": [
|
|
|
|
"error",
|
|
|
|
{
|
|
|
|
"object": false,
|
|
|
|
"array": false
|
|
|
|
}
|
|
|
|
],
|
2018-06-28 07:57:37 +03:00
|
|
|
"prefer-rest-params": 0,
|
|
|
|
"function-paren-newline": 0,
|
|
|
|
"no-case-declarations": 0,
|
|
|
|
"no-restricted-globals": 0,
|
|
|
|
"no-unneeded-ternary": 0,
|
|
|
|
"no-mixed-operators": 0,
|
|
|
|
"no-return-assign": 0,
|
|
|
|
"operator-assignment": 0,
|
|
|
|
"strict": 0,
|
|
|
|
"react/jsx-no-duplicate-props": 0,
|
|
|
|
"react/jsx-filename-extension": 0,
|
|
|
|
"react/jsx-curly-brace-presence": 0,
|
|
|
|
"react/forbid-prop-types": 0,
|
|
|
|
"react/require-default-props": 0,
|
|
|
|
"react/no-unused-prop-types": 0,
|
|
|
|
"react/no-string-refs": 0,
|
|
|
|
"react/no-unused-state": 0,
|
|
|
|
"react/no-array-index-key": 0,
|
|
|
|
"react/jsx-no-bind": 0,
|
|
|
|
"react/prop-types": 0,
|
|
|
|
"react/prefer-stateless-function": 0,
|
|
|
|
"react/no-unescaped-entities": 0,
|
2019-04-03 17:13:09 +03:00
|
|
|
"react/sort-comp": 0,
|
2020-04-06 14:23:04 +03:00
|
|
|
"react/jsx-indent": 0,
|
2020-07-01 13:22:09 +03:00
|
|
|
"react-hooks/rules-of-hooks": "error",
|
|
|
|
"react-hooks/exhaustive-deps": "warn",
|
2018-06-28 07:57:37 +03:00
|
|
|
"jsx-a11y/click-events-have-key-events": 0,
|
|
|
|
"jsx-a11y/no-static-element-interactions": 0,
|
|
|
|
"jsx-a11y/no-noninteractive-element-interactions": 0,
|
|
|
|
"jsx-a11y/label-has-for": 0,
|
|
|
|
"jsx-a11y/anchor-is-valid": 0,
|
|
|
|
"jsx-a11y/lang": 0,
|
|
|
|
"jsx-a11y/alt-text": 0,
|
2019-05-16 12:08:44 +03:00
|
|
|
"jsx-a11y/no-autofocus": 0,
|
2019-04-08 16:17:02 +03:00
|
|
|
"max-len": 0,
|
2020-01-13 10:11:30 +03:00
|
|
|
"no-continue": 0,
|
2020-06-05 11:10:08 +03:00
|
|
|
"no-new": 0,
|
2020-02-19 12:59:20 +03:00
|
|
|
"eqeqeq": 0,
|
2020-04-06 14:23:04 +03:00
|
|
|
"no-nested-ternary": 0
|
2018-06-28 07:57:37 +03:00
|
|
|
},
|
2020-07-01 13:22:09 +03:00
|
|
|
"plugins": [
|
|
|
|
"react",
|
|
|
|
"import",
|
|
|
|
"@typescript-eslint/eslint-plugin",
|
2021-07-08 11:17:34 +03:00
|
|
|
"react-hooks",
|
|
|
|
"testing-library"
|
2020-07-01 13:22:09 +03:00
|
|
|
],
|
2018-06-28 07:57:37 +03:00
|
|
|
"settings": {
|
|
|
|
"import/resolve": {
|
2020-10-05 12:01:10 +03:00
|
|
|
"moduleDirectory": [
|
|
|
|
"node_modules",
|
|
|
|
"src"
|
|
|
|
]
|
2018-06-28 07:57:37 +03:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"globals": {
|
|
|
|
"__DEVELOPMENT__": true,
|
|
|
|
"__CLIENT__": true,
|
|
|
|
"__SERVER__": true,
|
|
|
|
"__DISABLE_SSR__": true,
|
|
|
|
"__DEVTOOLS__": true,
|
|
|
|
"socket": true,
|
2019-07-29 17:15:39 +03:00
|
|
|
"webpackIsomorphicTools": true,
|
2020-03-18 11:59:15 +03:00
|
|
|
"CONSOLE_ASSET_VERSION": true
|
|
|
|
},
|
|
|
|
"overrides": [
|
|
|
|
{
|
2020-04-06 14:23:04 +03:00
|
|
|
"extends": [
|
|
|
|
"plugin:@typescript-eslint/recommended",
|
|
|
|
"airbnb",
|
|
|
|
"prettier"
|
|
|
|
],
|
|
|
|
"parser": "@typescript-eslint/parser",
|
2020-10-05 12:01:10 +03:00
|
|
|
"files": [
|
|
|
|
"*.ts",
|
|
|
|
"*.tsx"
|
|
|
|
],
|
2020-03-18 11:59:15 +03:00
|
|
|
"rules": {
|
2022-08-11 16:05:15 +03:00
|
|
|
"no-useless-escape": 0,
|
2021-10-07 12:50:04 +03:00
|
|
|
"no-restricted-imports": [
|
|
|
|
"error",
|
|
|
|
{
|
|
|
|
"patterns": [
|
|
|
|
"@/features/*/*",
|
|
|
|
"@/new-components/*/*"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2020-05-14 17:00:05 +03:00
|
|
|
"jsx-a11y/label-has-for": [
|
|
|
|
0,
|
|
|
|
{
|
|
|
|
"required": {
|
2020-10-05 12:01:10 +03:00
|
|
|
"some": [
|
|
|
|
"nesting",
|
|
|
|
"id"
|
|
|
|
]
|
2020-05-14 17:00:05 +03:00
|
|
|
}
|
2020-04-22 14:17:10 +03:00
|
|
|
}
|
2020-05-14 17:00:05 +03:00
|
|
|
],
|
2021-11-11 16:35:16 +03:00
|
|
|
"import/order": 0,
|
2020-04-06 14:23:04 +03:00
|
|
|
"import/extensions": 0,
|
2020-04-22 15:25:10 +03:00
|
|
|
"import/prefer-default-export": "off",
|
2020-04-06 14:23:04 +03:00
|
|
|
"react/prop-types": "off",
|
|
|
|
"react/jsx-filename-extension": 0,
|
|
|
|
"no-unused-vars": "off",
|
2020-04-22 15:25:10 +03:00
|
|
|
"camelcase": "off",
|
2020-06-18 13:43:19 +03:00
|
|
|
"no-param-reassign": "off",
|
2021-04-19 22:25:00 +03:00
|
|
|
"no-use-before-define": "off",
|
2022-08-17 17:35:48 +03:00
|
|
|
"consistent-return": "off",
|
|
|
|
"import/no-extraneous-dependencies": [
|
2021-09-20 19:30:19 +03:00
|
|
|
"error",
|
|
|
|
{
|
|
|
|
"devDependencies": [
|
|
|
|
"src/storybook/**/*",
|
|
|
|
"**/__tests__/**/*",
|
|
|
|
"**/*.test.js",
|
|
|
|
"**/*.test.jsx",
|
|
|
|
"**/*.spec.js",
|
|
|
|
"**/*.spec.jsx",
|
|
|
|
"**/*.test.ts",
|
|
|
|
"**/*.test.tsx",
|
|
|
|
"**/*.spec.ts",
|
|
|
|
"**/*.spec.tsx",
|
|
|
|
"**/*.stories.tsx",
|
2021-11-26 15:31:06 +03:00
|
|
|
"**/*.stories.mdx",
|
2022-02-14 18:35:44 +03:00
|
|
|
"**/*.mock.tsx",
|
|
|
|
"**/*.mock.ts"
|
2021-09-20 19:30:19 +03:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2020-04-06 14:23:04 +03:00
|
|
|
"@typescript-eslint/no-unused-vars": 2,
|
2021-04-19 22:25:00 +03:00
|
|
|
"@typescript-eslint/no-use-before-define": "warn",
|
2020-04-06 14:23:04 +03:00
|
|
|
"@typescript-eslint/indent": 0,
|
|
|
|
"@typescript-eslint/explicit-function-return-type": 0,
|
|
|
|
"@typescript-eslint/prefer-interface": 0,
|
|
|
|
"@typescript-eslint/no-namespace": "off",
|
|
|
|
"@typescript-eslint/camelcase": 0,
|
|
|
|
"@typescript-eslint/explicit-member-accessibility": 0,
|
|
|
|
"@typescript-eslint/no-non-null-assertion": 0,
|
|
|
|
"@typescript-eslint/no-object-literal-type-assertion": "off",
|
|
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
|
|
"@typescript-eslint/no-parameter-properties": "off",
|
|
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
|
|
"@typescript-eslint/no-var-requires": "off",
|
2021-07-13 14:17:18 +03:00
|
|
|
"@typescript-eslint/no-shadow": "error",
|
2020-04-06 14:23:04 +03:00
|
|
|
"@typescript-eslint/no-useless-constructor": "error",
|
2020-10-05 12:01:10 +03:00
|
|
|
"@typescript-eslint/no-unused-expressions": [
|
|
|
|
"error"
|
|
|
|
],
|
2020-04-06 14:23:04 +03:00
|
|
|
"@typescript-eslint/no-empty-function": "off",
|
2020-09-29 20:15:39 +03:00
|
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
2021-01-07 12:04:22 +03:00
|
|
|
"no-restricted-syntax": "warn",
|
2020-03-18 11:59:15 +03:00
|
|
|
/**
|
2021-01-07 12:04:22 +03:00
|
|
|
* Disable things that are checked by TypeScript
|
2020-03-18 11:59:15 +03:00
|
|
|
*/
|
|
|
|
"import/no-unresolved": 0,
|
|
|
|
"getter-return": "off",
|
|
|
|
"no-dupe-args": "off",
|
|
|
|
"no-dupe-keys": "off",
|
|
|
|
"no-unreachable": "off",
|
|
|
|
"valid-typeof": "off",
|
|
|
|
"no-const-assign": "off",
|
|
|
|
"no-new-symbol": "off",
|
|
|
|
"no-this-before-super": "off",
|
|
|
|
"no-undef": "off",
|
|
|
|
"no-dupe-class-members": "off",
|
|
|
|
"no-redeclare": "off",
|
2021-04-19 22:25:00 +03:00
|
|
|
"no-restricted-globals": "warn",
|
2020-03-18 11:59:15 +03:00
|
|
|
"no-useless-constructor": "off",
|
2020-04-15 11:19:52 +03:00
|
|
|
"no-unused-expressions": "off",
|
2020-04-15 18:08:37 +03:00
|
|
|
"no-console": "off",
|
2021-07-13 14:17:18 +03:00
|
|
|
"no-shadow": "off",
|
2020-05-14 17:00:05 +03:00
|
|
|
"prefer-destructuring": "off",
|
2020-06-05 11:10:08 +03:00
|
|
|
"no-plusplus": "off",
|
2020-05-27 18:02:58 +03:00
|
|
|
"jsx-a11y/anchor-is-valid": "off",
|
2020-06-05 11:10:08 +03:00
|
|
|
"jsx-a11y/click-events-have-key-events": "off",
|
|
|
|
"jsx-a11y/no-static-element-interactions": "off",
|
|
|
|
"no-new": "off",
|
|
|
|
"no-nested-ternary": "off",
|
2020-05-27 18:02:58 +03:00
|
|
|
"jsx-a11y/interactive-supports-focus": "off",
|
|
|
|
"no-restricted-properties": "off",
|
2020-05-14 17:00:05 +03:00
|
|
|
"react/no-danger": "off",
|
2020-06-10 11:52:23 +03:00
|
|
|
"react/no-array-index-key": "off",
|
2021-01-07 12:04:22 +03:00
|
|
|
"no-case-declarations": 0,
|
2021-03-26 15:13:23 +03:00
|
|
|
"react/jsx-indent": "off",
|
2022-08-02 16:51:29 +03:00
|
|
|
"arrow-body-style": "off",
|
|
|
|
"react/require-default-props": "warn",
|
|
|
|
"react/no-unused-prop-types": "warn",
|
|
|
|
"jsx-a11y/role-supports-aria-props": "warn"
|
|
|
|
|
2020-03-18 11:59:15 +03:00
|
|
|
}
|
2021-07-08 11:17:34 +03:00
|
|
|
},
|
|
|
|
{
|
|
|
|
// 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files!
|
|
|
|
"files": ["src/**/__tests__/**/*.[jt]s?(x)", "src/**/?(*.)+(spec|test).[jt]s?(x)"],
|
|
|
|
"extends": ["plugin:testing-library/react", "plugin:jest-dom/recommended"]
|
2020-03-18 11:59:15 +03:00
|
|
|
}
|
|
|
|
]
|
2021-07-08 11:17:34 +03:00
|
|
|
}
|