Skip to content

Instantly share code, notes, and snippets.

@m0sk1t
Created October 21, 2022 23:33
Show Gist options
  • Save m0sk1t/8adfaaf8a643e219b17e136e0dc31c35 to your computer and use it in GitHub Desktop.
Save m0sk1t/8adfaaf8a643e219b17e136e0dc31c35 to your computer and use it in GitHub Desktop.
ESLint for React\TS
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"prettier",
"eslint:recommended",
"plugin:react/recommended",
"standard-with-typescript"
],
"overrides": [],
"parserOptions": {
"project": [
"./tsconfig.json"
],
"ecmaVersion": "latest",
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"plugins": [
"react"
],
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
// Possible Problems
"no-await-in-loop": "error",
"no-duplicate-imports": [
"error",
{
"includeExports": true
}
],
"no-promise-executor-return": "error",
"no-self-compare": "error",
"no-unmodified-loop-condition": "error",
"no-unused-private-class-members": "error",
// Suggestions
"curly": "error",
"default-case": "error",
"default-case-last": "error",
"default-param-last": "error",
"dot-notation": "error",
"eqeqeq": "error",
"guard-for-in": "error",
"no-confusing-arrow": "error",
"no-param-reassign": [
"error",
{
"props": true
}
],
"no-return-await": "error",
"no-sequences": "error",
"no-var": "error",
"prefer-arrow-callback": "error",
"prefer-const": "error",
"prefer-destructuring": "error",
"prefer-exponentiation-operator": "error",
"prefer-named-capture-group": "error",
"prefer-object-spread": "error",
"prefer-promise-reject-errors": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"prefer-template": "error",
"require-await": "error",
"sort-imports": [
"error",
{
"ignoreCase": false,
"ignoreDeclarationSort": false,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": [
"single",
"all",
"multiple",
"none"
],
"allowSeparatedGroups": true
}
],
"sort-keys": "error",
"spaced-comment": 2,
// Layout & formatting
"semi": [
"error",
"always"
],
"indent": [
"error",
2
],
"jsx-quotes": [
"error",
"prefer-single"
],
"accessor-pairs": "error",
"arrow-body-style": [
"error",
"as-needed"
],
"array-bracket-newline": [
"error",
{
"minItems": 3
}
],
"array-bracket-spacing": [
"error",
"never"
],
"arrow-parens": [
"error",
"always"
],
"arrow-spacing": [
"error",
{
"before": false,
"after": true
}
],
"block-spacing": "error",
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}
],
"comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
"dot-location": [
"error",
"property"
],
"eol-last": [
"error",
"always"
],
"func-call-spacing": [
"error",
"never"
],
"key-spacing": [
"error",
{
"beforeColon": false,
"afterColon": true
}
],
"max-len": [
"error",
{
"code": 120
}
],
"lines-between-class-members": [
"error",
"always"
],
"no-trailing-spaces": "error",
"no-whitespace-before-property": "error",
"object-curly-newline": [
"error",
{
"ObjectExpression": "never",
"ObjectPattern": {
"multiline": true,
"minProperties": 2
},
"ImportDeclaration": {
"multiline": true,
"minProperties": 2
},
"ExportDeclaration": {
"multiline": true,
"minProperties": 2
}
}
],
"object-curly-spacing": [
"error",
"always"
],
"object-property-newline": "error",
"rest-spread-spacing": [
"error",
"never"
],
"semi-spacing": [
"error",
{
"before": false,
"after": true
}
],
"semi-style": [
"error",
"last"
],
"space-before-blocks": [
"error",
"always"
],
"space-before-function-paren": [
"error",
{
"anonymous": "always",
"named": "never",
"asyncArrow": "always"
}
],
"space-in-parens": [
"error",
"never"
],
"space-infix-ops": [
"error",
{
"int32Hint": true
}
]
// React
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment