github-desktop/.eslintrc.yml
2020-07-02 13:25:13 +02:00

107 lines
1.9 KiB
YAML

root: true
parser: '@typescript-eslint/parser'
plugins:
- '@typescript-eslint'
- babel
- react
- json
settings:
react:
version: '16.3'
extends:
- prettier
- prettier/react
rules:
##########
# CUSTOM #
##########
insecure-random: error
###########
# PLUGINS #
###########
# TYPESCRIPT
'@typescript-eslint/naming-convention':
- error
- selector: interface
format:
- PascalCase
custom:
regex: '^I[A-Z]'
match: true
- selector: class
format:
- PascalCase
'@typescript-eslint/consistent-type-assertions':
- error
- assertionStyle: 'as'
'@typescript-eslint/no-unused-expressions': error
'@typescript-eslint/explicit-member-accessibility': error
'@typescript-eslint/no-unused-vars':
- error
- args: 'none'
'@typescript-eslint/no-use-before-define':
- error
- functions: false
variables: false
typedefs: false
# this rule now works but generates a lot of issues with the codebase
# '@typescript-eslint/member-ordering': error
# Babel
babel/no-invalid-this: error
# React
react/jsx-boolean-value:
- error
- always
react/jsx-key: error
react/jsx-no-bind: error
react/no-string-refs: error
react/jsx-uses-vars: error
react/jsx-uses-react: error
###########
# BUILTIN #
###########
curly: error
no-new-wrappers: error
no-redeclare:
- error
- builtinGlobals: true
no-eval: error
no-sync: error
no-var: error
prefer-const: error
eqeqeq:
- error
- smart
strict:
- error
- global
no-buffer-constructor: error
###########
# SPECIAL #
###########
no-restricted-syntax:
- error
# no-default-export
- selector: ExportDefaultDeclaration
message: Use of default exports is forbidden
overrides:
- files: '*.d.ts'
rules:
strict:
- error
- never
parserOptions:
sourceType: module
ecmaFeatures:
jsx: true