forked from facebook/react
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc
101 lines (92 loc) · 2.62 KB
/
.eslintrc
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
---
parser: babel-eslint
plugins:
- react
- react-internal
env:
browser: true
node: true
globals:
__DEV__: true
# Jest / Jasmine
describe: false
xdescribe: false
beforeEach: false
afterEach: false
it: false
xit: false
jest: false
pit: false
expect: false
spyOn: false
jasmine: false
rules:
# ERRORS
space-before-blocks: 2
indent: [2, 2, indentSwitchCase: true]
brace-style: 2
space-after-keywords: 2
strict: 2
comma-dangle: [2, always-multiline]
# Make this a warning for now. We do this in a few places so we might need to
# disable
no-unused-expressions: 2
eol-last: 2
dot-notation: 2
dot-location: [2, property]
consistent-return: 2
no-unused-vars: [2, args: none]
quotes: [2, single, avoid-escape]
no-shadow: 2
no-multi-spaces: 2
# WISHLIST. One day...
# We'll need a custom version of this that does a subset of the whole rule.
# Otherwise this is just too noisy.
# valid-jsdoc: 1
# Ideally, we could just warn when *new* lines are added that exceed 80 chars
# while not warning about existing ones (often URLs, etc. which are
# necessarily long), but we don't have a good way to do so.
# max-len: [0, 80]
# DISABLED. These aren't compatible with our style
# We use this for private/internal variables
no-underscore-dangle: 0
# We pass constructors around / access them from members
new-cap: 0
# We do this a lot.
no-use-before-define: 0
# We do this in a few places to align values
key-spacing: 0
# It's nice to be able to leave catch blocks empty
no-empty: 0
# It makes code more readable to make this explicit sometimes
no-undef-init: 0
# BROKEN. We'd like to turn these back on.
# causes a ton of noise, eslint is too picky?
block-scoped-var: 0
# JSX
# Our transforms set this automatically
react/display-name: 0
react/jsx-boolean-value: [2, always]
react/jsx-no-undef: 2
react/jsx-quotes: [2, double]
# We don't care to do this
react/jsx-sort-prop-types: 0
react/jsx-sort-props: 0
react/jsx-uses-react: 2
react/jsx-uses-vars: 2
# It's easier to test some things this way
react/no-did-mount-set-state: 0
react/no-did-update-set-state: 0
# We define multiple components in test files
react/no-multi-comp: 0
react/no-unknown-property: 2
# This isn't useful in our test code
react/prop-types: 0
react/react-in-jsx-scope: 2
react/self-closing-comp: 2
# We don't care to do this
react/sort-comp: 0
react/wrap-multilines: [2, {declaration: false, assignment: false}]
# CUSTOM RULES
# the second argument of warning/invariant should be a literal string
react-internal/warning-and-invariant-args: 2