You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
4.3 KiB
YAML
155 lines
4.3 KiB
YAML
2 years ago
|
extends:
|
||
|
- airbnb-base
|
||
|
- airbnb-typescript/base
|
||
|
env:
|
||
|
es6: true
|
||
|
globals:
|
||
|
Atomics: readonly
|
||
|
SharedArrayBuffer: readonly
|
||
|
BigInt: readonly
|
||
|
parser: '@typescript-eslint/parser'
|
||
|
plugins:
|
||
|
- '@typescript-eslint'
|
||
|
- simple-import-sort
|
||
|
- eslint-plugin-import
|
||
|
rules:
|
||
|
'@typescript-eslint/no-shadow': 1
|
||
|
|
||
|
function-call-argument-newline: 0
|
||
|
'@typescript-eslint/dot-notation': 0
|
||
|
'@typescript-eslint/no-implied-eval': 0
|
||
|
'@typescript-eslint/no-throw-literal': 0
|
||
|
'@typescript-eslint/return-await': 0
|
||
|
|
||
|
comma-dangle:
|
||
|
- 1
|
||
|
- always-multiline
|
||
|
|
||
|
no-implicit-coercion:
|
||
|
- warn
|
||
|
- allow: ["!!", "+"]
|
||
|
no-extra-boolean-cast:
|
||
|
- warn
|
||
|
- enforceForLogicalOperands: true
|
||
|
no-multi-str: 0
|
||
|
'@typescript-eslint/no-invalid-this': 0
|
||
|
'@typescript-eslint/type-annotation-spacing': 1
|
||
|
'@typescript-eslint/indent':
|
||
|
- warn
|
||
|
- 4
|
||
|
'@typescript-eslint/lines-between-class-members':
|
||
|
- error
|
||
|
- always
|
||
|
- exceptAfterSingleLine: true
|
||
|
'@typescript-eslint/naming-convention':
|
||
|
- warn
|
||
|
- selector: default
|
||
|
format: [camelCase]
|
||
|
leadingUnderscore: allowSingleOrDouble
|
||
|
- selector: default
|
||
|
filter:
|
||
|
regex: '^([A-Z]|_+id|__call__)$'
|
||
|
match: true
|
||
|
format: null
|
||
|
- selector: variable
|
||
|
modifiers: [destructured]
|
||
|
filter:
|
||
|
regex: '^_id$'
|
||
|
match: false
|
||
|
format: [camelCase, PascalCase, UPPER_CASE, snake_case]
|
||
|
- selector: variable
|
||
|
format: [camelCase, PascalCase, UPPER_CASE]
|
||
|
modifiers: [const]
|
||
|
leadingUnderscore: allowSingleOrDouble
|
||
|
- selector: property
|
||
|
format: [camelCase, PascalCase, UPPER_CASE, snake_case]
|
||
|
leadingUnderscore: allowSingleOrDouble
|
||
|
- selector: [function, parameter, parameterProperty, objectLiteralMethod]
|
||
|
filter:
|
||
|
regex: __call__
|
||
|
match: false
|
||
|
format: [camelCase, PascalCase]
|
||
|
leadingUnderscore: allowSingleOrDouble
|
||
|
- selector: [objectLiteralProperty]
|
||
|
filter:
|
||
|
regex: '^[\d]+$'
|
||
|
match: true
|
||
|
format: null
|
||
|
- selector: [typeProperty, objectLiteralProperty]
|
||
|
modifiers: [requiresQuotes]
|
||
|
format: null
|
||
|
- selector: enum
|
||
|
format: [PascalCase]
|
||
|
- selector: [class, interface, typeAlias, enumMember]
|
||
|
format: [PascalCase, camelCase, UPPER_CASE]
|
||
|
- selector: typeParameter
|
||
|
format: [camelCase, PascalCase, UPPER_CASE]
|
||
|
|
||
|
'@typescript-eslint/no-redeclare': 0
|
||
|
'@typescript-eslint/default-param-last': 0
|
||
|
default-param-last: 0
|
||
|
'@typescript-eslint/quotes': ['warn', 'single', { avoidEscape: true }]
|
||
|
|
||
|
class-methods-use-this: 0
|
||
|
global-require: 0
|
||
|
guard-for-in: 0
|
||
|
implicit-arrow-linebreak: 0
|
||
|
import/extensions: 0
|
||
|
consistent-return: 1
|
||
|
func-names: 0
|
||
|
import/newline-after-import: 0
|
||
|
import/no-cycle: 0
|
||
|
import/no-extraneous-dependencies: 0
|
||
|
import/no-named-as-default: 0
|
||
|
import/prefer-default-export: 0
|
||
|
|
||
|
logical-assignment-operators:
|
||
|
- warn
|
||
|
- always
|
||
|
- enforceForIfStatements: true
|
||
|
max-classes-per-file: 0
|
||
|
max-len:
|
||
|
- warn
|
||
|
- 150
|
||
|
newline-per-chained-call: 0
|
||
|
no-bitwise: 0
|
||
|
no-console: 0
|
||
|
no-continue: 0
|
||
|
no-extend-native: 0
|
||
|
no-empty:
|
||
|
- warn
|
||
|
- allowEmptyCatch: true
|
||
|
no-multi-assign: 0
|
||
|
no-nested-ternary: 0
|
||
|
no-param-reassign: 0
|
||
|
no-plusplus: 0
|
||
|
no-return-await: 0
|
||
|
no-shadow: 0
|
||
|
no-underscore-dangle: 0
|
||
|
no-unmodified-loop-condition: 1
|
||
|
prefer-destructuring: 0
|
||
|
function-paren-newline: 0
|
||
|
simple-import-sort/exports: 0
|
||
|
|
||
|
# Note: must disable the base rule as it can report incorrect errors
|
||
|
no-use-before-define: 0
|
||
|
'@typescript-eslint/no-use-before-define': 1
|
||
|
no-unused-vars: 0
|
||
|
'@typescript-eslint/no-unused-vars': 1
|
||
|
|
||
|
no-restricted-syntax:
|
||
|
- error
|
||
|
- 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.'
|
||
|
|
||
|
simple-import-sort/imports:
|
||
|
- warn
|
||
|
- groups:
|
||
|
- ["^\\u0000"]
|
||
|
-
|
||
|
- "^(node:)?(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)"
|
||
|
- "^"
|
||
|
- "^\\."
|