forked from markokajzer/discord-soundbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc.yml
113 lines (98 loc) · 2.82 KB
/
.eslintrc.yml
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
---
parser: "@typescript-eslint/parser"
plugins:
- "@typescript-eslint"
- jest
- prettier
- simple-import-sort
- sort-keys-fix
extends:
- airbnb-base
- plugin:@typescript-eslint/recommended
- plugin:jest/recommended
- plugin:jest/style
- prettier
- prettier/@typescript-eslint
env:
jest: true
parserOptions:
ecmaVersion: 6
sourceType: module
rules:
import/extensions: off
import/no-unresolved: off
import/order: off
import/prefer-default-export: off
arrow-body-style:
- error
- as-needed
- requireReturnForObjectLiteral: false
arrow-parens:
- error
- as-needed
class-methods-use-this: off
curly:
- error
- multi-line
- consistent
no-console:
- error
- allow:
- info
- error
no-else-return:
- error
- allowElseIf: false
no-multi-spaces:
- error
- ignoreEOLComments: true
# NOTE: We can allow for..of because this is a node project
# See https://github.com/airbnb/javascript/blob/63098cbb6c05376dbefc9a91351f5727540c1ce1/packages/eslint-config-airbnb-base/rules/style.js#L339
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."
no-unused-vars:
- error
- vars: all
args: all
argsIgnorePattern: ^_
radix: off
# @typescript-eslint
# Does not work with class fields :(
lines-between-class-members:
- error
- always
- exceptAfterSingleLine: true
"@typescript-eslint/ban-ts-comment": off
"@typescript-eslint/explicit-function-return-type": off
"@typescript-eslint/explicit-member-accessibility": off
"@typescript-eslint/explicit-module-boundary-types": off
"@typescript-eslint/indent": off
"@typescript-eslint/no-non-null-assertion": off
"@typescript-eslint/no-object-literal-type-assertion": off
# eslint-plugin-jest
jest/no-truthy-falsy: error
# simple-import-sort
simple-import-sort/imports:
- error
- groups:
# Side effect imports.
- ["^\\u0000"]
# Packages.
# Things that start with a letter (or digit or underscore), or `@` followed by a letter.
- ["^@?\\w"]
# Absolute imports and other imports such as Vue-style `@/foo`.
# Anything that does not start with a dot.
- ["^", "~/"]
# Relative imports.
# Anything that starts with a dot.
- ["^\\."]
# sort-keys-fix
sort-keys-fix/sort-keys-fix: error
# Custom rules
prefer-early-return: error