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.
Hydro/packages/eslint-config/base.yaml

160 lines
4.4 KiB
YAML

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
- eslint-plugin-github
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, typeMethod, objectLiteralProperty]
modifiers: [requiresQuotes]
format: null
- selector: [typeMethod]
format: [camelCase, PascalCase]
- 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.'
github/array-foreach: 1
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)(/.*|$)"
- "^"
- "^\\."