Skip to content

Instantly share code, notes, and snippets.

@dankochetov
Last active March 4, 2022 19:58
Show Gist options
  • Save dankochetov/727900e56ff1717b650d2d086cda5758 to your computer and use it in GitHub Desktop.
Save dankochetov/727900e56ff1717b650d2d086cda5758 to your computer and use it in GitHub Desktop.
env:
browser: true
es6: true
extends:
- plugin:react/recommended
- plugin:@typescript-eslint/eslint-recommended
- plugin:@typescript-eslint/recommended
- plugin:@typescript-eslint/recommended-requiring-type-checking
- airbnb-typescript
- prettier
- plugin:import/recommended
globals:
Atomics: readonly
SharedArrayBuffer: readonly
parser: '@typescript-eslint/parser'
parserOptions:
project:
- ./tsconfig.json
ecmaFeatures:
jsx: true
ecmaVersion: 2018
sourceType: module
plugins:
- react
- react-hooks
- '@typescript-eslint'
- prettier
reportUnusedDisableDirectives: true
overrides:
- files:
- '*.js'
- '*.jsx'
rules:
'@typescript-eslint/no-var-requires': off
'@typescript-eslint/prefer-nullish-coalescing': off
'@typescript-eslint/no-unsafe-call': off
'@typescript-eslint/no-unsafe-member-access': off
'@typescript-eslint/no-unsafe-return': off
'@typescript-eslint/no-explicit-any': off
'@typescript-eslint/no-unsafe-assignment': off
'@typescript-eslint/restrict-template-expressions': off
'@typescript-eslint/no-unsafe-argument': off
- files:
- '*.ts'
- '*.tsx'
rules:
default-case: off
consistent-return: off
- files:
- 'src/migrations/*-*.ts'
rules:
'@typescript-eslint/no-explicit-any': off
rules:
import/no-extraneous-dependencies:
- error
- devDependencies: true
prettier/prettier: warn
'@typescript-eslint/no-unused-vars':
- error
- vars: local
varsIgnorePattern: '^[iI]gnored'
args: after-used
argsIgnorePattern: '^_|^ignored'
ignoreRestSiblings: true
caughtErrors: all
caughtErrorsIgnorePattern: '^ignored'
no-param-reassign:
- error
- props: false
import/extensions: off
import/no-unresolved: off
import/prefer-default-export: off
import/order: off
import/named: off
react/jsx-filename-extension:
- error
- extensions:
- .js
- .jsx
- .tsx
react/jsx-props-no-spreading: off
react/prop-types: off
'@typescript-eslint/explicit-function-return-type': off
'@typescript-eslint/camelcase': off
'@typescript-eslint/no-empty-interface': off
'@typescript-eslint/naming-convention': off
no-underscore-dangle: off
no-console: off
'@typescript-eslint/no-use-before-define': off
no-nested-ternary: off
jsx-a11y/click-events-have-key-events: off
jsx-a11y/no-static-element-interactions: off
'@typescript-eslint/prefer-ts-expect-error': error
'@typescript-eslint/prefer-optional-chain': error
'@typescript-eslint/prefer-nullish-coalescing': error
react-hooks/rules-of-hooks: error
react-hooks/exhaustive-deps: error
'@typescript-eslint/no-unsafe-call': error
'@typescript-eslint/no-unsafe-member-access': error
'@typescript-eslint/no-unsafe-return': error
'@typescript-eslint/no-explicit-any': off
'@typescript-eslint/explicit-module-boundary-types':
- error
- allowedNames:
- handler
'@typescript-eslint/lines-between-class-members': off
no-shadow:
- error
- allow:
- manager
class-methods-use-this: off
max-classes-per-file: off
import/no-cycle: off
no-await-in-loop: off
no-restricted-syntax:
- error
- selector: ForInStatement
message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.'
- selector: LabeledStatement
message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.'
- selector: WithStatement
message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.'
new-cap: off
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment