206 lines
5.8 KiB
JSON
206 lines
5.8 KiB
JSON
{
|
|
"env": {
|
|
"browser": true,
|
|
"node": true
|
|
},
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"sourceType": "module"
|
|
},
|
|
"extends": ["prettier"],
|
|
"plugins": [
|
|
"@typescript-eslint",
|
|
"import",
|
|
"local-rules",
|
|
"simple-import-sort",
|
|
"cypress",
|
|
"chai-friendly",
|
|
"formatjs",
|
|
"react-hooks",
|
|
"react-refresh"
|
|
],
|
|
"overrides": [
|
|
{
|
|
"files": ["src/**/*.test.*", "src/**/*.stories.*"],
|
|
"rules": {
|
|
"react-refresh/only-export-components": "off"
|
|
}
|
|
}
|
|
],
|
|
"rules": {
|
|
"react-refresh/only-export-components": "warn",
|
|
"@typescript-eslint/adjacent-overload-signatures": "error",
|
|
"@typescript-eslint/array-type": [
|
|
"error",
|
|
{
|
|
"default": "array-simple"
|
|
}
|
|
],
|
|
"@typescript-eslint/ban-types": [
|
|
"error",
|
|
{
|
|
"extendDefaults": true,
|
|
"types": {
|
|
"{}": false
|
|
}
|
|
}
|
|
],
|
|
"@typescript-eslint/consistent-type-assertions": "error",
|
|
"@typescript-eslint/consistent-type-definitions": "error",
|
|
"@typescript-eslint/explicit-member-accessibility": "off",
|
|
"@typescript-eslint/indent": "off",
|
|
"@typescript-eslint/interface-name-prefix": "off",
|
|
"@typescript-eslint/member-delimiter-style": [
|
|
"off",
|
|
"error",
|
|
{
|
|
"multiline": {
|
|
"delimiter": "none",
|
|
"requireLast": true
|
|
},
|
|
"singleline": {
|
|
"delimiter": "semi",
|
|
"requireLast": false
|
|
}
|
|
}
|
|
],
|
|
"@typescript-eslint/member-ordering": "error",
|
|
"@typescript-eslint/no-empty-function": "error",
|
|
"@typescript-eslint/no-empty-interface": "error",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-misused-new": "error",
|
|
"@typescript-eslint/no-namespace": "error",
|
|
"@typescript-eslint/no-parameter-properties": "off",
|
|
"@typescript-eslint/no-this-alias": "error",
|
|
"@typescript-eslint/no-use-before-declare": "off",
|
|
"@typescript-eslint/no-var-requires": "error",
|
|
"@typescript-eslint/prefer-for-of": "error",
|
|
"@typescript-eslint/prefer-function-type": "error",
|
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
|
"@typescript-eslint/quotes": "off",
|
|
"@typescript-eslint/semi": ["off", null],
|
|
"@typescript-eslint/space-within-parens": ["off", "never"],
|
|
"@typescript-eslint/triple-slash-reference": "error",
|
|
"@typescript-eslint/type-annotation-spacing": "off",
|
|
"@typescript-eslint/unified-signatures": "error",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"error",
|
|
{ "argsIgnorePattern": "^_" }
|
|
],
|
|
"arrow-body-style": "error",
|
|
"arrow-parens": ["off", "as-needed"],
|
|
"camelcase": "off",
|
|
"capitalized-comments": "off",
|
|
"chai-friendly/no-unused-expressions": "error",
|
|
"complexity": "off",
|
|
"constructor-super": "error",
|
|
"curly": "error",
|
|
"dot-notation": "error",
|
|
"eol-last": "off",
|
|
"eqeqeq": ["error", "smart"],
|
|
"formatjs/enforce-id": [
|
|
"error",
|
|
{
|
|
"idInterpolationPattern": "[sha512:contenthash:base64:6]"
|
|
}
|
|
],
|
|
"guard-for-in": "error",
|
|
"id-blacklist": "off",
|
|
"import/no-duplicates": "error",
|
|
"import/no-extraneous-dependencies": "off", // imports are handled by simple-import-sort/sort
|
|
"import/no-internal-modules": "off", // imports are handled by simple-import-sort/sort
|
|
"import/order": "off", // imports are handled by simple-import-sort/sort
|
|
"linebreak-style": "off",
|
|
"local-rules/named-styles": "error",
|
|
"max-classes-per-file": "off",
|
|
"max-len": "off",
|
|
"new-parens": "off",
|
|
"newline-per-chained-call": "off",
|
|
"no-bitwise": "error",
|
|
"no-caller": "error",
|
|
"no-cond-assign": "error",
|
|
"no-console": [
|
|
"error",
|
|
{
|
|
"allow": [
|
|
"warn",
|
|
"dir",
|
|
"time",
|
|
"timeEnd",
|
|
"timeLog",
|
|
"trace",
|
|
"assert",
|
|
"clear",
|
|
"count",
|
|
"countReset",
|
|
"group",
|
|
"groupEnd",
|
|
"table",
|
|
"debug",
|
|
"info",
|
|
"dirxml",
|
|
"error",
|
|
"groupCollapsed",
|
|
"Console",
|
|
"profile",
|
|
"profileEnd",
|
|
"timeStamp",
|
|
"context"
|
|
]
|
|
}
|
|
],
|
|
"no-debugger": "error",
|
|
"no-duplicate-case": "error",
|
|
"no-empty": "error",
|
|
"no-eval": "error",
|
|
"no-extra-bind": "error",
|
|
"no-extra-semi": "off",
|
|
"no-fallthrough": "off",
|
|
"no-invalid-this": "off",
|
|
"no-irregular-whitespace": "off",
|
|
"no-multiple-empty-lines": "off",
|
|
"no-new-func": "error",
|
|
"no-new-wrappers": "error",
|
|
"no-redeclare": "off",
|
|
"no-return-await": "error",
|
|
"no-sequences": "error",
|
|
"no-shadow": [
|
|
"off",
|
|
{
|
|
"hoist": "all"
|
|
}
|
|
],
|
|
"no-sparse-arrays": "error",
|
|
"no-template-curly-in-string": "error",
|
|
"no-throw-literal": "error",
|
|
"no-trailing-spaces": "off",
|
|
"no-undef-init": "error",
|
|
"no-underscore-dangle": "off",
|
|
"no-unsafe-finally": "error",
|
|
"no-unused-expressions": "off",
|
|
"no-unused-labels": "error",
|
|
"no-var": "error",
|
|
"object-shorthand": "error",
|
|
"one-var": ["error", "never"],
|
|
"prefer-const": "error",
|
|
"prefer-object-spread": "error",
|
|
"quote-props": "off",
|
|
"radix": "error",
|
|
"react-hooks/rules-of-hooks": "error",
|
|
"react-hooks/exhaustive-deps": "warn",
|
|
"simple-import-sort/sort": ["error"],
|
|
"sort-imports": "off", // imports are handled by simple-import-sort/sort
|
|
"sort-keys": "off",
|
|
"space-before-function-paren": "off",
|
|
"spaced-comment": ["error", "always", { "markers": ["/"] }],
|
|
"use-isnan": "error",
|
|
"valid-typeof": "off",
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"paths": ["lodash", "@material-ui/icons/Delete", "classnames"]
|
|
}
|
|
]
|
|
},
|
|
"ignorePatterns": ["node_modules/", "**/types/**/*", "type-policies.ts"]
|
|
}
|