-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc.yaml
41 lines (31 loc) · 1.48 KB
/
.eslintrc.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
env:
browser: true
es2020: true
plugins:
- import
extends:
- airbnb-base
- airbnb-typescript/base
parserOptions:
ecmaVersion: 11
sourceType: module
project: ./tsconfig.json
rules:
# ++variable is impossible to express in terms of the += operator
no-plusplus: off
# This rule, combined with max-length, makes some code impossible to write correctly;
# ideally, we should configure it with the option multiline-arguments, but that turns out
# to enforce strange line breaks in TypeScript generics
function-paren-newline: 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.
# Allow for..of statements: avoiding iterators completely is not really possible in our codebase,
# and the .forEach() method, which is effectively a statement, looks too much like an expression
# - selector: ForOfStatement
# message: iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.
- 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.'