@effective/eslint-config
Version:
ESLint Config for TypeScript and ReactJS
1,995 lines (1,993 loc) • 36.9 kB
JavaScript
const rules = {
"accessor-pairs": [
"error",
{
"enforceForClassMembers": true,
"getWithoutSet": false,
"setWithoutGet": true
}
],
"array-callback-return": [
"error",
{
"allowImplicit": true,
"checkForEach": false,
"allowVoid": false
}
],
"arrow-body-style": [
"off"
],
"block-scoped-var": [
"error"
],
"capitalized-comments": [
"off"
],
"complexity": [
"error",
15
],
"default-case-last": [
"error"
],
"eqeqeq": [
"error",
"smart"
],
"for-direction": [
"error"
],
"func-name-matching": [
"error",
{
"considerPropertyDescriptor": true
}
],
"func-names": [
"error",
"never"
],
"func-style": [
"error",
"declaration",
{
"allowArrowFunctions": true
}
],
"grouped-accessor-pairs": [
"error",
"getBeforeSet"
],
"guard-for-in": [
"error"
],
"logical-assignment-operators": [
"error",
"always",
{
"enforceForIfStatements": true
}
],
"max-depth": [
"warn"
],
"max-lines": [
"error",
{
"max": 1000,
"skipBlankLines": false,
"skipComments": false
}
],
"max-nested-callbacks": [
"warn",
4
],
"max-params": [
"warn",
{
"max": 4
}
],
"new-cap": [
"error",
{
"newIsCap": true,
"capIsNew": true,
"properties": true
}
],
"no-alert": [
"error"
],
"no-async-promise-executor": [
"error"
],
"no-await-in-loop": [
"error"
],
"no-bitwise": [
"error"
],
"no-buffer-constructor": [
"error"
],
"no-caller": [
"error"
],
"no-case-declarations": [
"error"
],
"no-class-assign": [
"error"
],
"no-compare-neg-zero": [
"error"
],
"no-cond-assign": [
"error"
],
"no-constant-binary-expression": [
"error"
],
"no-constant-condition": [
"error"
],
"no-constructor-return": [
"error"
],
"no-control-regex": [
"error"
],
"no-debugger": [
"error"
],
"no-delete-var": [
"error"
],
"no-dupe-else-if": [
"error"
],
"no-duplicate-case": [
"error"
],
"no-else-return": [
"error",
{
"allowElseIf": false
}
],
"no-empty": [
"error",
{
"allowEmptyCatch": true
}
],
"no-empty-character-class": [
"error"
],
"no-empty-pattern": [
"error"
],
"no-empty-static-block": [
"error"
],
"no-eq-null": [
"off"
],
"no-eval": [
"error"
],
"no-ex-assign": [
"error"
],
"no-extend-native": [
"error"
],
"no-extra-bind": [
"error"
],
"no-extra-boolean-cast": [
"error"
],
"no-extra-label": [
"error"
],
"no-fallthrough": [
"error"
],
"no-global-assign": [
"error"
],
"no-implicit-coercion": [
"error"
],
"no-implicit-globals": [
"error"
],
"no-inner-declarations": [
"error"
],
"no-invalid-regexp": [
"error"
],
"no-irregular-whitespace": [
"error"
],
"no-iterator": [
"error"
],
"no-label-var": [
"error"
],
"no-labels": [
"error"
],
"no-lone-blocks": [
"error"
],
"no-lonely-if": [
"error"
],
"no-loop-func": [
"off"
],
"no-misleading-character-class": [
"error"
],
"no-multi-assign": [
"error"
],
"no-multi-str": [
"error"
],
"no-negated-condition": [
"error"
],
"no-new": [
"error"
],
"no-new-func": [
"error"
],
"no-new-object": [
"warn"
],
"no-new-wrappers": [
"error"
],
"no-nonoctal-decimal-escape": [
"error"
],
"no-object-constructor": [
"error"
],
"no-octal": [
"error"
],
"no-octal-escape": [
"error"
],
"no-promise-executor-return": [
"error"
],
"no-proto": [
"error"
],
"no-prototype-builtins": [
"error"
],
"no-regex-spaces": [
"error"
],
"no-restricted-globals": [
"error",
"event",
{
"name": "atob",
"message": "This API is deprecated. Use https://github.com/sindresorhus/uint8array-extras instead."
},
{
"name": "btoa",
"message": "This API is deprecated. Use https://github.com/sindresorhus/uint8array-extras instead."
}
],
"no-restricted-properties": [
"error",
{
"object": "require",
"property": "ensure",
"message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting"
},
{
"object": "System",
"property": "import",
"message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting"
}
],
"no-restricted-syntax": [
"error",
{
"selector": "TSEnumDeclaration",
"message": "Don't declare enums - use union types instead"
},
{
"selector": "WithStatement",
"message": "Don't use with - it's deprecated"
}
],
"no-return-assign": [
"error",
"always"
],
"no-return-await": [
"error"
],
"no-script-url": [
"error"
],
"no-self-assign": [
"error",
{
"props": true
}
],
"no-self-compare": [
"error"
],
"no-sequences": [
"error"
],
"no-shadow-restricted-names": [
"error"
],
"no-sparse-arrays": [
"error"
],
"no-template-curly-in-string": [
"error"
],
"no-undef-init": [
"error"
],
"no-unmodified-loop-condition": [
"error"
],
"no-unneeded-ternary": [
"error"
],
"no-unreachable-loop": [
"error"
],
"no-unsafe-finally": [
"error"
],
"no-unsafe-optional-chaining": [
"error",
{
"disallowArithmeticOperators": true
}
],
"no-unused-expressions": [
"off",
{
"enforceForJSX": true,
"allowShortCircuit": false,
"allowTernary": false,
"allowTaggedTemplates": false
}
],
"no-unused-labels": [
"error"
],
"no-useless-backreference": [
"error"
],
"no-useless-call": [
"error"
],
"no-useless-catch": [
"error"
],
"no-useless-computed-key": [
"error",
{
"enforceForClassMembers": true
}
],
"no-useless-concat": [
"error"
],
"no-useless-escape": [
"error"
],
"no-useless-rename": [
"error"
],
"no-useless-return": [
"error"
],
"no-var": [
"error"
],
"no-void": [
"error",
{
"allowAsStatement": true
}
],
"no-warning-comments": [
"warn"
],
"no-with": [
"error"
],
"object-shorthand": [
"error",
"always",
{
"avoidExplicitReturnArrows": true
}
],
"one-var": [
"error",
"never"
],
"operator-assignment": [
"error",
"always"
],
"prefer-arrow-callback": [
"error",
{
"allowNamedFunctions": true,
"allowUnboundThis": true
}
],
"prefer-const": [
"error",
{
"destructuring": "all",
"ignoreReadBeforeAssign": false
}
],
"prefer-destructuring": [
"off"
],
"prefer-exponentiation-operator": [
"error"
],
"prefer-numeric-literals": [
"error"
],
"prefer-object-has-own": [
"error"
],
"prefer-object-spread": [
"error"
],
"prefer-regex-literals": [
"error",
{
"disallowRedundantWrapping": true
}
],
"prefer-rest-params": [
"error"
],
"prefer-spread": [
"error"
],
"radix": [
"error"
],
"require-yield": [
"error"
],
"spaced-comment": [
"error",
"always",
{
"line": {
"exceptions": [
"-",
"+",
"*"
],
"markers": [
"!",
"/",
"=>"
]
},
"block": {
"exceptions": [
"-",
"+",
"*"
],
"markers": [
"!",
"*"
],
"balanced": true
}
}
],
"strict": [
"warn",
"never"
],
"symbol-description": [
"error"
],
"unicode-bom": [
"error",
"never"
],
"use-isnan": [
"error"
],
"valid-typeof": [
"error",
{
"requireStringLiterals": false
}
],
"yoda": [
"error"
],
"@typescript-eslint/adjacent-overload-signatures": [
"error"
],
"@typescript-eslint/array-type": [
"error",
{
"default": "array-simple"
}
],
"@typescript-eslint/await-thenable": [
"error"
],
"@typescript-eslint/ban-ts-comment": [
"error",
{
"ts-expect-error": "allow-with-description",
"minimumDescriptionLength": 4
}
],
"@typescript-eslint/ban-tslint-comment": [
"error"
],
"@typescript-eslint/ban-types": [
"error",
{
"extendDefaults": false,
"types": {
"String": {
"message": "Use `string` instead.",
"fixWith": "string"
},
"Number": {
"message": "Use `number` instead.",
"fixWith": "number"
},
"Boolean": {
"message": "Use `boolean` instead.",
"fixWith": "boolean"
},
"Symbol": {
"message": "Use `symbol` instead.",
"fixWith": "symbol"
},
"BigInt": {
"message": "Use `bigint` instead.",
"fixWith": "bigint"
},
"Object": {
"message": "The `Object` type is mostly the same as `unknown`. You probably want `Record<string, unknown>` instead. See https://github.com/typescript-eslint/typescript-eslint/pull/848",
"fixWith": "Record<string, unknown>"
},
"{}": {
"message": "The `{}` type is mostly the same as `unknown`. You probably want `Record<string, unknown>` instead.",
"fixWith": "Record<string, unknown>"
},
"object": {
"message": "The `object` type is hard to use. Use `Record<string, unknown>` instead. See: https://github.com/typescript-eslint/typescript-eslint/pull/848",
"fixWith": "Record<string, unknown>"
},
"Function": "Use a specific function type instead, like `() => void`.",
"null": {
"message": "Use `undefined` instead. See: https://github.com/sindresorhus/meta/issues/7",
"fixWith": "undefined"
},
"Buffer": {
"message": "Use Uint8Array instead. See: https://sindresorhus.com/blog/goodbye-nodejs-buffer",
"suggest": [
"Uint8Array"
]
},
"[]": "Don't use the empty array type `[]`. It only allows empty arrays. Use `SomeType[]` instead.",
"[[]]": "Don't use `[[]]`. It only allows an array with a single element which is an empty array. Use `SomeType[][]` instead.",
"[[[]]]": "Don't use `[[[]]]`. Use `SomeType[][][]` instead.",
"[[[[]]]]": "ur drunk 🤡",
"[[[[[]]]]]": "🦄💥"
}
}
],
"@typescript-eslint/class-literal-property-style": [
"error",
"getters"
],
"@typescript-eslint/consistent-generic-constructors": [
"error",
"constructor"
],
"@typescript-eslint/consistent-indexed-object-style": [
"error"
],
"@typescript-eslint/consistent-type-assertions": [
"error",
{
"assertionStyle": "as",
"objectLiteralTypeAssertions": "allow-as-parameter"
}
],
"@typescript-eslint/consistent-type-definitions": [
"error",
"interface"
],
"@typescript-eslint/consistent-type-exports": [
"error",
{
"fixMixedExportsWithInlineTypeSpecifier": true
}
],
"@typescript-eslint/consistent-type-imports": [
"error",
{
"prefer": "type-imports",
"fixStyle": "separate-type-imports"
}
],
"@typescript-eslint/default-param-last": [
"error"
],
"@typescript-eslint/dot-notation": [
"error"
],
"@typescript-eslint/lines-between-class-members": [
"error",
"always",
{
"exceptAfterSingleLine": true,
"exceptAfterOverload": true
}
],
"@typescript-eslint/member-ordering": [
"error",
{
"default": [
"signature",
"public-static-field",
"public-static-method",
"protected-static-field",
"protected-static-method",
"private-static-field",
"private-static-method",
"static-field",
"static-method",
"public-decorated-field",
"public-instance-field",
"public-abstract-field",
"public-field",
"protected-decorated-field",
"protected-instance-field",
"protected-abstract-field",
"protected-field",
"private-decorated-field",
"private-instance-field",
"private-field",
"instance-field",
"abstract-field",
"decorated-field",
"field",
"public-constructor",
"protected-constructor",
"private-constructor",
"constructor",
"public-decorated-method",
"public-instance-method",
"public-abstract-method",
"public-method",
"protected-decorated-method",
"protected-instance-method",
"protected-abstract-method",
"protected-method",
"private-decorated-method",
"private-instance-method",
"private-method",
"instance-method",
"abstract-method",
"decorated-method",
"method"
]
}
],
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "variable",
"format": [
"UPPER_CASE"
],
"modifiers": [
"const",
"global"
],
"types": [
"boolean",
"number",
"string"
],
"leadingUnderscore": "forbid",
"trailingUnderscore": "forbid",
"filter": {
"regex": "[- ]",
"match": false
}
},
{
"selector": [
"variable",
"function",
"classProperty",
"objectLiteralProperty",
"parameterProperty",
"classMethod",
"objectLiteralMethod",
"typeMethod",
"accessor"
],
"format": [
"strictCamelCase",
"StrictPascalCase"
],
"leadingUnderscore": "allowSingleOrDouble",
"trailingUnderscore": "allow",
"filter": {
"regex": "[- ]",
"match": false
}
},
{
"selector": "typeLike",
"format": [
"StrictPascalCase"
]
},
{
"selector": "variable",
"types": [
"boolean"
],
"format": [
"StrictPascalCase"
],
"prefix": [
"is",
"has",
"can",
"should",
"will",
"did"
]
},
{
"selector": "interface",
"filter": "^(?!I)[A-Z]",
"format": [
"StrictPascalCase"
]
},
{
"selector": "typeParameter",
"filter": "^T$|^[A-Z][a-zA-Z]+$",
"format": [
"StrictPascalCase"
]
},
{
"selector": [
"classProperty",
"objectLiteralProperty"
],
"format": null,
"modifiers": [
"requiresQuotes"
]
}
],
"@typescript-eslint/no-array-constructor": [
"error"
],
"@typescript-eslint/no-array-delete": [
"error"
],
"@typescript-eslint/no-base-to-string": [
"error"
],
"@typescript-eslint/no-confusing-non-null-assertion": [
"error"
],
"@typescript-eslint/no-confusing-void-expression": [
"error"
],
"@typescript-eslint/no-dupe-class-members": [
"error"
],
"@typescript-eslint/no-duplicate-enum-values": [
"error"
],
"@typescript-eslint/no-duplicate-type-constituents": [
"error"
],
"@typescript-eslint/no-dynamic-delete": [
"error"
],
"@typescript-eslint/no-empty-function": [
"error"
],
"@typescript-eslint/no-empty-interface": [
"error",
{
"allowSingleExtends": true
}
],
"@typescript-eslint/no-explicit-any": [
"error"
],
"@typescript-eslint/no-extra-non-null-assertion": [
"error"
],
"@typescript-eslint/no-extraneous-class": [
"error",
{
"allowConstructorOnly": false,
"allowEmpty": false,
"allowStaticOnly": false,
"allowWithDecorator": true
}
],
"@typescript-eslint/no-floating-promises": [
"error",
{
"ignoreVoid": true,
"ignoreIIFE": true
}
],
"@typescript-eslint/no-for-in-array": [
"error"
],
"@typescript-eslint/no-implied-eval": [
"error"
],
"@typescript-eslint/no-inferrable-types": [
"error"
],
"@typescript-eslint/no-invalid-void-type": [
"error"
],
"@typescript-eslint/no-loop-func": [
"error"
],
"@typescript-eslint/no-loss-of-precision": [
"error"
],
"@typescript-eslint/no-magic-numbers": [
"error",
{
"ignore": [
-1,
0,
1
],
"ignoreEnums": true,
"ignoreDefaultValues": true,
"ignoreNumericLiteralTypes": true,
"ignoreTypeIndexes": true
}
],
"@typescript-eslint/no-meaningless-void-operator": [
"error"
],
"@typescript-eslint/no-misused-new": [
"error"
],
"@typescript-eslint/no-misused-promises": [
"error",
{
"checksConditionals": true,
"checksVoidReturn": false
}
],
"@typescript-eslint/no-mixed-enums": [
"error"
],
"@typescript-eslint/no-namespace": [
"error"
],
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": [
"error"
],
"@typescript-eslint/no-non-null-asserted-optional-chain": [
"error"
],
"@typescript-eslint/no-non-null-assertion": [
"error"
],
"@typescript-eslint/no-redeclare": [
"error"
],
"@typescript-eslint/no-redundant-type-constituents": [
"error"
],
"@typescript-eslint/no-require-imports": [
"error"
],
"@typescript-eslint/no-restricted-imports": [
"error",
{
"paths": [
"error",
"domain",
"freelist",
"smalloc",
"punycode",
"sys",
"querystring",
"colors"
]
}
],
"@typescript-eslint/no-this-alias": [
"error",
{
"allowDestructuring": true
}
],
"@typescript-eslint/no-throw-literal": [
"error",
{
"allowThrowingUnknown": true,
"allowThrowingAny": false
}
],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": [
"error"
],
"@typescript-eslint/no-unnecessary-condition": [
"error"
],
"@typescript-eslint/no-unnecessary-qualifier": [
"error"
],
"@typescript-eslint/no-unnecessary-type-arguments": [
"error"
],
"@typescript-eslint/no-unnecessary-type-assertion": [
"error"
],
"@typescript-eslint/no-unnecessary-type-constraint": [
"error"
],
"@typescript-eslint/no-unsafe-argument": [
"error"
],
"@typescript-eslint/no-unsafe-assignment": [
"error"
],
"@typescript-eslint/no-unsafe-call": [
"error"
],
"@typescript-eslint/no-unsafe-declaration-merging": [
"error"
],
"@typescript-eslint/no-unsafe-enum-comparison": [
"error"
],
"@typescript-eslint/no-unsafe-member-access": [
"error"
],
"@typescript-eslint/no-unsafe-return": [
"error"
],
"@typescript-eslint/no-unused-expressions": [
"error"
],
"@typescript-eslint/no-unused-vars": [
"error"
],
"@typescript-eslint/no-use-before-define": [
"warn",
{
"functions": false,
"classes": false,
"variables": false,
"typedefs": false
}
],
"@typescript-eslint/no-useless-constructor": [
"error"
],
"@typescript-eslint/no-useless-empty-export": [
"error"
],
"@typescript-eslint/no-useless-template-literals": [
"error"
],
"@typescript-eslint/no-var-requires": [
"error"
],
"@typescript-eslint/non-nullable-type-assertion-style": [
"error"
],
"@typescript-eslint/only-throw-error": [
"error"
],
"@typescript-eslint/padding-line-between-statements": [
"error",
{
"blankLine": "always",
"prev": "multiline-block-like",
"next": "*"
}
],
"@typescript-eslint/parameter-properties": [
"error",
{
"prefer": "parameter-property"
}
],
"@typescript-eslint/prefer-as-const": [
"error"
],
"@typescript-eslint/prefer-find": [
"error"
],
"@typescript-eslint/prefer-for-of": [
"error"
],
"@typescript-eslint/prefer-function-type": [
"error"
],
"@typescript-eslint/prefer-includes": [
"error"
],
"@typescript-eslint/prefer-literal-enum-member": [
"error"
],
"@typescript-eslint/prefer-namespace-keyword": [
"error"
],
"@typescript-eslint/prefer-nullish-coalescing": [
"error",
{
"ignoreTernaryTests": false,
"ignoreConditionalTests": false,
"ignoreMixedLogicalExpressions": false
}
],
"@typescript-eslint/prefer-optional-chain": [
"error"
],
"@typescript-eslint/prefer-promise-reject-errors": [
"error"
],
"@typescript-eslint/prefer-readonly": [
"error"
],
"@typescript-eslint/prefer-reduce-type-parameter": [
"error"
],
"@typescript-eslint/prefer-regexp-exec": [
"error"
],
"@typescript-eslint/prefer-return-this-type": [
"error"
],
"@typescript-eslint/prefer-string-starts-ends-with": [
"error"
],
"@typescript-eslint/prefer-ts-expect-error": [
"error"
],
"@typescript-eslint/promise-function-async": [
"error"
],
"@typescript-eslint/require-array-sort-compare": [
"error",
{
"ignoreStringArrays": true
}
],
"@typescript-eslint/require-await": [
"error"
],
"@typescript-eslint/restrict-plus-operands": [
"error",
{
"allowAny": false
}
],
"@typescript-eslint/restrict-template-expressions": [
"error",
{
"allowNumber": true
}
],
"@typescript-eslint/return-await": [
"error"
],
"@typescript-eslint/switch-exhaustiveness-check": [
"error",
{
"allowDefaultCaseForExhaustiveSwitch": false,
"requireDefaultForNonUnion": true
}
],
"@typescript-eslint/triple-slash-reference": [
"error",
{
"path": "never",
"types": "never",
"lib": "never"
}
],
"@typescript-eslint/unbound-method": [
"error"
],
"@typescript-eslint/unified-signatures": [
"error",
{
"ignoreDifferentlyNamedParameters": true
}
],
"@typescript-eslint/use-unknown-in-catch-callback-variable": [
"error"
],
"jsdoc/check-access": [
"warn"
],
"jsdoc/check-alignment": [
"warn"
],
"jsdoc/check-param-names": [
"warn"
],
"jsdoc/check-property-names": [
"warn"
],
"jsdoc/check-tag-names": [
"warn"
],
"jsdoc/check-types": [
"warn"
],
"jsdoc/check-values": [
"warn"
],
"jsdoc/empty-tags": [
"warn"
],
"jsdoc/implements-on-classes": [
"warn"
],
"jsdoc/multiline-blocks": [
"warn"
],
"jsdoc/no-defaults": [
"warn"
],
"jsdoc/no-multi-asterisks": [
"warn"
],
"jsdoc/no-undefined-types": [
"warn"
],
"jsdoc/tag-lines": [
"warn"
],
"jsdoc/valid-types": [
"warn"
],
"jsx-a11y/alt-text": [
"warn"
],
"jsx-a11y/anchor-has-content": [
"warn"
],
"jsx-a11y/anchor-is-valid": [
"warn",
{
"aspects": [
"noHref",
"invalidHref"
]
}
],
"jsx-a11y/aria-activedescendant-has-tabindex": [
"warn"
],
"jsx-a11y/aria-props": [
"warn"
],
"jsx-a11y/aria-proptypes": [
"warn"
],
"jsx-a11y/aria-role": [
"warn",
{
"ignoreNonDOM": true
}
],
"jsx-a11y/aria-unsupported-elements": [
"warn"
],
"jsx-a11y/heading-has-content": [
"warn"
],
"jsx-a11y/iframe-has-title": [
"warn"
],
"jsx-a11y/img-redundant-alt": [
"warn"
],
"jsx-a11y/no-access-key": [
"warn"
],
"jsx-a11y/no-distracting-elements": [
"warn"
],
"jsx-a11y/no-redundant-roles": [
"warn"
],
"jsx-a11y/role-has-required-aria-props": [
"warn"
],
"jsx-a11y/role-supports-aria-props": [
"warn"
],
"jsx-a11y/scope": [
"warn"
],
"react-hooks/exhaustive-deps": [
"warn"
],
"react-hooks/rules-of-hooks": [
"error"
],
"react/boolean-prop-naming": [
"error",
{
"validateNested": true,
"rule": "^(is|has)[A-Z]([A-Za-z0-9]?)+"
}
],
"react/button-has-type": [
"error"
],
"react/default-props-match-prop-types": [
"error"
],
"react/display-name": [
"error"
],
"react/forbid-foreign-prop-types": [
"warn",
{
"allowInPropTypes": true
}
],
"react/function-component-definition": [
"error",
{
"namedComponents": "function-declaration",
"unnamedComponents": "arrow-function"
}
],
"react/hook-use-state": [
"error"
],
"react/iframe-missing-sandbox": [
"error"
],
"react/jsx-boolean-value": [
"error"
],
"react/jsx-curly-brace-presence": [
"error"
],
"react/jsx-fragments": [
"error",
"syntax"
],
"react/jsx-key": [
"error",
{
"checkFragmentShorthand": true,
"checkKeyMustBeforeSpread": true,
"warnOnDuplicates": true
}
],
"react/jsx-no-bind": [
"error",
{
"allowArrowFunctions": true,
"allowBind": false,
"allowFunctions": false,
"ignoreRefs": false,
"ignoreDOMComponents": false
}
],
"react/jsx-no-comment-textnodes": [
"error"
],
"react/jsx-no-constructed-context-values": [
"error"
],
"react/jsx-no-duplicate-props": [
"error",
{
"ignoreCase": true
}
],
"react/jsx-no-script-url": [
"error"
],
"react/jsx-no-target-blank": [
"error",
{
"warnOnSpreadAttributes": true,
"forms": true,
"links": true
}
],
"react/jsx-no-undef": [
"error"
],
"react/jsx-no-useless-fragment": [
"error"
],
"react/jsx-pascal-case": [
"error"
],
"react/jsx-sort-props": [
"error",
{
"callbacksLast": true,
"shorthandFirst": true,
"noSortAlphabetically": true,
"reservedFirst": true,
"multiline": "ignore",
"locale": "auto"
}
],
"react/jsx-uses-react": [
"off"
],
"react/jsx-uses-vars": [
"error"
],
"react/no-access-state-in-setstate": [
"error"
],
"react/no-array-index-key": [
"error"
],
"react/no-arrow-function-lifecycle": [
"error"
],
"react/no-children-prop": [
"error"
],
"react/no-danger": [
"error"
],
"react/no-danger-with-children": [
"error"
],
"react/no-deprecated": [
"error"
],
"react/no-did-update-set-state": [
"error"
],
"react/no-direct-mutation-state": [
"error"
],
"react/no-find-dom-node": [
"error"
],
"react/no-invalid-html-attribute": [
"error"
],
"react/no-is-mounted": [
"error"
],
"react/no-namespace": [
"error"
],
"react/no-redundant-should-component-update": [
"error"
],
"react/no-render-return-value": [
"error"
],
"react/no-string-refs": [
"error",
{
"noTemplateLiterals": true
}
],
"react/no-this-in-sfc": [
"error"
],
"react/no-typos": [
"error"
],
"react/no-unescaped-entities": [
"error"
],
"react/no-unknown-property": [
"error"
],
"react/no-unsafe": [
"error"
],
"react/no-unused-prop-types": [
"error"
],
"react/no-unused-state": [
"error"
],
"react/prefer-read-only-props": [
"error"
],
"react/prop-types": [
"off"
],
"react/react-in-jsx-scope": [
"off"
],
"react/require-default-props": [
"error",
{
"forbidDefaultForRequired": true,
"ignoreFunctionalComponents": true
}
],
"react/require-render-return": [
"error"
],
"react/self-closing-comp": [
"error"
],
"react/state-in-constructor": [
"error",
"never"
],
"react/static-property-placement": [
"error"
],
"react/style-prop-object": [
"error",
{
"allow": [
"FormattedNumber"
]
}
],
"react/void-dom-elements-no-children": [
"error"
],
"regexp/confusing-quantifier": [
"warn"
],
"regexp/control-character-escape": [
"error"
],
"regexp/match-any": [
"error"
],
"regexp/negation": [
"error"
],
"regexp/no-contradiction-with-assertion": [
"error"
],
"regexp/no-dupe-characters-character-class": [
"error"
],
"regexp/no-dupe-disjunctions": [
"error"
],
"regexp/no-empty-alternative": [
"warn"
],
"regexp/no-empty-capturing-group": [
"error"
],
"regexp/no-empty-character-class": [
"error"
],
"regexp/no-empty-group": [
"error"
],
"regexp/no-empty-lookarounds-assertion": [
"error"
],
"regexp/no-empty-string-literal": [
"error"
],
"regexp/no-escape-backspace": [
"error"
],
"regexp/no-extra-lookaround-assertions": [
"error"
],
"regexp/no-invalid-regexp": [
"error"
],
"regexp/no-invisible-character": [
"error"
],
"regexp/no-lazy-ends": [
"warn"
],
"regexp/no-legacy-features": [
"error"
],
"regexp/no-misleading-capturing-group": [
"error"
],
"regexp/no-misleading-unicode-character": [
"error"
],
"regexp/no-missing-g-flag": [
"error"
],
"regexp/no-non-standard-flag": [
"error"
],
"regexp/no-obscure-range": [
"error"
],
"regexp/no-optional-assertion": [
"error"
],
"regexp/no-potentially-useless-backreference": [
"warn"
],
"regexp/no-super-linear-backtracking": [
"error"
],
"regexp/no-trivially-nested-assertion": [
"error"
],
"regexp/no-trivially-nested-quantifier": [
"error"
],
"regexp/no-unused-capturing-group": [
"error"
],
"regexp/no-useless-assertions": [
"error"
],
"regexp/no-useless-backreference": [
"error"
],
"regexp/no-useless-character-class": [
"error"
],
"regexp/no-useless-dollar-replacements": [
"error"
],
"regexp/no-useless-escape": [
"error"
],
"regexp/no-useless-flag": [
"warn"
],
"regexp/no-useless-lazy": [
"error"
],
"regexp/no-useless-non-capturing-group": [
"error"
],
"regexp/no-useless-quantifier": [
"error"
],
"regexp/no-useless-range": [
"error"
],
"regexp/no-useless-set-operand": [
"error"
],
"regexp/no-useless-string-literal": [
"error"
],
"regexp/no-useless-two-nums-quantifier": [
"error"
],
"regexp/no-zero-quantifier": [
"error"
],
"regexp/optimal-lookaround-quantifier": [
"warn"
],
"regexp/optimal-quantifier-concatenation": [
"error"
],
"regexp/prefer-character-class": [
"error"
],
"regexp/prefer-d": [
"error"
],
"regexp/prefer-plus-quantifier": [
"error"
],
"regexp/prefer-predefined-assertion": [
"error"
],
"regexp/prefer-question-quantifier": [
"error"
],
"regexp/prefer-range": [
"error"
],
"regexp/prefer-set-operation": [
"error"
],
"regexp/prefer-star-quantifier": [
"error"
],
"regexp/prefer-unicode-codepoint-escapes": [
"error"
],
"regexp/prefer-w": [
"error"
],
"regexp/simplify-set-operations": [
"error"
],
"regexp/sort-flags": [
"error"
],
"regexp/strict": [
"error"
],
"regexp/use-ignore-case": [
"error"
],
"simple-import-sort/imports": [
"error"
],
"unicorn/better-regex": [
"error"
],
"unicorn/catch-error-name": [
"error"
],
"unicorn/consistent-function-scoping": [
"error"
],
"unicorn/error-message": [
"error"
],
"unicorn/escape-case": [
"error"
],
"unicorn/expiring-todo-comments": [
"error"
],
"unicorn/explicit-length-check": [
"error"
],
"unicorn/filename-case": [
"off"
],
"unicorn/import-style": [
"error"
],
"unicorn/new-for-builtins": [
"error"
],
"unicorn/no-abusive-eslint-disable": [
"error"
],
"unicorn/no-anonymous-default-export": [
"error"
],
"unicorn/no-array-callback-reference": [
"error"
],
"unicorn/no-array-for-each": [
"error"
],
"unicorn/no-array-method-this-argument": [
"error"
],
"unicorn/no-array-push-push": [
"off"
],
"unicorn/no-array-reduce": [
"error"
],
"unicorn/no-await-expression-member": [
"error"
],
"unicorn/no-await-in-promise-methods": [
"error"
],
"unicorn/no-console-spaces": [
"error"
],
"unicorn/no-document-cookie": [
"error"
],
"unicorn/no-empty-file": [
"error"
],
"unicorn/no-for-loop": [
"error"
],
"unicorn/no-hex-escape": [
"error"
],
"unicorn/no-instanceof-array": [
"error"
],
"unicorn/no-invalid-remove-event-listener": [
"error"
],
"unicorn/no-lonely-if": [
"error"
],
"unicorn/no-negated-condition": [
"error"
],
"unicorn/no-new-array": [
"error"
],
"unicorn/no-new-buffer": [
"error"
],
"unicorn/no-null": [
"error"
],
"unicorn/no-object-as-default-parameter": [
"error"
],
"unicorn/no-process-exit": [
"error"
],
"unicorn/no-single-promise-in-promise-methods": [
"error"
],
"unicorn/no-static-only-class": [
"error"
],
"unicorn/no-thenable": [
"error"
],
"unicorn/no-this-assignment": [
"error"
],
"unicorn/no-typeof-undefined": [
"error"
],
"unicorn/no-unnecessary-await": [
"error"
],
"unicorn/no-unnecessary-polyfills": [
"error"
],
"unicorn/no-unreadable-array-destructuring": [
"error"
],
"unicorn/no-unreadable-iife": [
"error"
],
"unicorn/no-useless-fallback-in-spread": [
"error"
],
"unicorn/no-useless-length-check": [
"error"
],
"unicorn/no-useless-promise-resolve-reject": [
"error"
],
"unicorn/no-useless-spread": [
"error"
],
"unicorn/no-useless-switch-case": [
"error"
],
"unicorn/no-useless-undefined": [
"error"
],
"unicorn/no-zero-fractions": [
"error"
],
"unicorn/numeric-separators-style": [
"off"
],
"unicorn/prefer-add-event-listener": [
"error"
],
"unicorn/prefer-array-find": [
"error"
],
"unicorn/prefer-array-flat": [
"error"
],
"unicorn/prefer-array-flat-map": [
"error"
],
"unicorn/prefer-array-index-of": [
"error"
],
"unicorn/prefer-array-some": [
"error"
],
"unicorn/prefer-at": [
"error"
],
"unicorn/prefer-blob-reading-methods": [
"error"
],
"unicorn/prefer-code-point": [
"error"
],
"unicorn/prefer-date-now": [
"error"
],
"unicorn/prefer-default-parameters": [
"error"
],
"unicorn/prefer-dom-node-append": [
"error"
],
"unicorn/prefer-dom-node-dataset": [
"error"
],
"unicorn/prefer-dom-node-remove": [
"error"
],
"unicorn/prefer-dom-node-text-content": [
"error"
],
"unicorn/prefer-event-target": [
"error"
],
"unicorn/prefer-export-from": [
"error"
],
"unicorn/prefer-includes": [
"error"
],
"unicorn/prefer-keyboard-event-key": [
"error"
],
"unicorn/prefer-logical-operator-over-ternary": [
"error"
],
"unicorn/prefer-math-trunc": [
"error"
],
"unicorn/prefer-modern-dom-apis": [
"error"
],
"unicorn/prefer-modern-math-apis": [
"error"
],
"unicorn/prefer-module": [
"error"
],
"unicorn/prefer-native-coercion-functions": [
"error"
],
"unicorn/prefer-negative-index": [
"error"
],
"unicorn/prefer-node-protocol": [
"error"
],
"unicorn/prefer-number-properties": [
"error"
],
"unicorn/prefer-object-from-entries": [
"error"
],
"unicorn/prefer-optional-catch-binding": [
"error"
],
"unicorn/prefer-prototype-methods": [
"error"
],
"unicorn/prefer-query-selector": [
"error"
],
"unicorn/prefer-reflect-apply": [
"error"
],
"unicorn/prefer-regexp-test": [
"error"
],
"unicorn/prefer-set-has": [
"error"
],
"unicorn/prefer-set-size": [
"error"
],
"unicorn/prefer-spread": [
"error"
],
"unicorn/prefer-string-replace-all": [
"error"
],
"unicorn/prefer-string-slice": [
"error"
],
"unicorn/prefer-string-starts-ends-with": [
"error"
],
"unicorn/prefer-string-trim-start-end": [
"error"
],
"unicorn/prefer-switch": [
"error"
],
"unicorn/prefer-ternary": [
"error"
],
"unicorn/prefer-top-level-await": [
"error"
],
"unicorn/prefer-type-error": [
"error"
],
"unicorn/prevent-abbreviations": [
"error",
{
"replacements": {
"props": false
}
}
],
"unicorn/relative-url-style": [
"error"
],
"unicorn/require-array-join-separator": [
"error"
],
"unicorn/require-number-to-fixed-digits-argument": [
"error"
],
"unicorn/switch-case-braces": [
"error"
],
"unicorn/text-encoding-identifier-case": [
"error"
],
"unicorn/throw-new-error": [
"error"
],
"unused-imports/no-unused-imports": [
"error"
]
};
export default rules;