@@ -6,194 +6,26 @@ module.exports = {
6
6
node : true ,
7
7
jest : true ,
8
8
} ,
9
- parser : 'babel-eslint' ,
9
+ parser : 'babel-eslint' , // https://github.com/babel/babel-eslint#why-use-babel-eslint
10
10
parserOptions : {
11
+ ecmaVersion : 6 ,
12
+ sourceType : 'module' ,
11
13
ecmaFeatures : {
12
14
experimentalObjectRestSpread : true ,
15
+ impliedStrict : true ,
13
16
jsx : true ,
14
17
} ,
15
- sourceType : 'module' ,
16
18
} ,
17
19
plugins : [ 'react' , 'import' , 'jest' ] ,
18
20
extends : [
19
21
'plugin:react/recommended' ,
20
22
'plugin:import/errors' ,
21
23
'plugin:jest/recommended' ,
22
- 'prettier' ,
24
+ './rules.js' ,
25
+ 'prettier' , // enforce prettier rules to pass after our rules, so it disables useless rules
23
26
'prettier/react' ,
24
27
] ,
25
28
settings : {
26
29
'import/extensions' : [ '.js' ] ,
27
30
} ,
28
- rules : {
29
- // Possible errors
30
- // http://eslint.org/docs/rules/#possible-errors
31
- 'no-cond-assign' : [ 'error' ] ,
32
- 'no-console' : [ 'error' ] ,
33
- 'no-constant-condition' : [ 'error' ] ,
34
- 'no-control-regex' : [ 'error' ] ,
35
- 'no-debugger' : [ 'error' ] ,
36
- 'no-dupe-args' : [ 'error' ] ,
37
- 'no-dupe-keys' : [ 'error' ] ,
38
- 'no-duplicate-case' : [ 'error' ] ,
39
- 'no-empty' : [ 'error' ] ,
40
- 'no-empty-character-class' : [ 'error' ] ,
41
- 'no-ex-assign' : [ 'error' ] ,
42
- 'no-extra-boolean-cast' : [ 'error' ] ,
43
- 'no-extra-semi' : [ 'error' ] ,
44
- 'no-func-assign' : [ 'error' ] ,
45
- 'no-inner-declarations' : [ 'error' ] ,
46
- 'no-invalid-regexp' : [ 'error' ] ,
47
- 'no-irregular-whitespace' : [ 'error' ] ,
48
- 'no-obj-calls' : [ 'error' ] ,
49
- 'no-prototype-builtins' : [ 'off' ] ,
50
- 'no-regex-spaces' : [ 'error' ] ,
51
- 'no-template-curly-in-string' : [ 'error' ] ,
52
- 'no-sparse-arrays' : [ 'error' ] ,
53
- 'no-unexpected-multiline' : [ 'error' ] ,
54
- 'no-unreachable' : [ 'error' ] ,
55
- 'no-unsafe-finally' : [ 'error' ] ,
56
- 'no-unsafe-negation' : [ 'error' ] ,
57
- 'use-isnan' : [ 'error' ] ,
58
- 'valid-jsdoc' : [ 'error' ] ,
59
- 'valid-typeof' : [ 'error' ] ,
60
-
61
- // Best practices
62
- // http://eslint.org/docs/rules/#best-practices
63
- 'accessor-pairs' : [ 'error' ] ,
64
- 'array-callback-return' : [ 'error' ] ,
65
- 'block-scoped-var' : [ 'error' ] ,
66
- 'class-methods-use-this' : [ 'off' ] ,
67
- complexity : [ 'error' ] ,
68
- 'consistent-return' : [ 'error' ] ,
69
- curly : [ 'off' ] ,
70
- 'default-case' : [ 'error' ] ,
71
- 'dot-location' : [ 'off' ] ,
72
- 'dot-notation' : [ 'error' ] ,
73
- eqeqeq : [ 'error' ] ,
74
- 'guard-for-in' : [ 'error' ] ,
75
- 'no-alert' : [ 'error' ] ,
76
- 'no-caller' : [ 'error' ] ,
77
- 'no-case-declarations' : [ 'error' ] ,
78
- 'no-div-regex' : [ 'error' ] ,
79
- 'no-empty-function' : [ 'off' ] ,
80
- 'no-empty-pattern' : [ 'error' ] ,
81
- 'no-eq-null' : [ 'error' ] ,
82
- 'no-eval' : [ 'error' ] ,
83
- 'no-extend-native' : [ 'error' ] ,
84
- 'no-extra-bind' : [ 'error' ] ,
85
- 'no-extra-label' : [ 'error' ] ,
86
- 'no-fallthrough' : [ 'error' ] ,
87
- 'no-floating-decimal' : [ 'error' ] ,
88
- 'no-global-assign' : [ 'error' ] ,
89
- 'no-implicit-coercion' : [ 'error' , { string : false } ] ,
90
- 'no-implicit-globals' : [ 'error' ] ,
91
- 'no-implied-eval' : [ 'error' ] ,
92
- 'no-invalid-this' : [ 'off' ] ,
93
- 'no-iterator' : [ 'error' ] ,
94
- 'no-labels' : [ 'error' ] ,
95
- 'no-lone-blocks' : [ 'error' ] ,
96
- 'no-loop-func' : [ 'error' ] ,
97
- 'no-magic-numbers' : [ 'off' ] ,
98
- 'no-multi-spaces' : [ 'error' ] ,
99
- 'no-multi-str' : [ 'error' ] ,
100
- 'no-new' : [ 'error' ] ,
101
- 'no-new-func' : [ 'error' ] ,
102
- 'no-new-wrappers' : [ 'error' ] ,
103
- 'no-octal' : [ 'error' ] ,
104
- 'no-octal-escape' : [ 'error' ] ,
105
- 'no-param-reassign' : [ 'off' ] ,
106
- 'no-proto' : [ 'error' ] ,
107
- 'no-redeclare' : [ 'error' ] ,
108
- 'no-return-assign' : [ 'error' ] ,
109
- 'no-script-url' : [ 'error' ] ,
110
- 'no-self-assign' : [ 'error' ] ,
111
- 'no-self-compare' : [ 'error' ] ,
112
- 'no-sequences' : [ 'error' ] ,
113
- 'no-throw-literal' : [ 'error' ] ,
114
- 'no-unmodified-loop-condition' : [ 'error' ] ,
115
- 'no-unused-expressions' : [ 'error' ] ,
116
- 'no-unused-labels' : [ 'error' ] ,
117
- 'no-useless-call' : [ 'error' ] ,
118
- 'no-useless-concat' : [ 'error' ] ,
119
- 'no-useless-escape' : [ 'error' ] ,
120
- 'no-void' : [ 'error' ] ,
121
- 'no-warning-comments' : [ 'error' ] ,
122
- 'no-with' : [ 'error' ] ,
123
- radix : [ 'error' ] ,
124
- 'vars-on-top' : [ 'error' ] ,
125
- 'wrap-iife' : [ 'error' ] ,
126
- yoda : [ 'error' ] ,
127
-
128
- // Strict mode
129
- // http://eslint.org/docs/rules/#strict-mode
130
- strict : [ 'error' , 'never' ] ,
131
-
132
- // Variables
133
- // http://eslint.org/docs/rules/#variables
134
- 'init-declarations' : [ 'off' ] ,
135
- 'no-catch-shadow' : [ 'error' ] ,
136
- 'no-delete-var' : [ 'error' ] ,
137
- 'no-label-var' : [ 'error' ] ,
138
- 'no-restricted-globals' : [ 'error' , 'event' ] ,
139
- 'no-shadow' : [ 'error' ] ,
140
- 'no-shadow-restricted-names' : [ 'error' ] ,
141
- 'no-undef' : [ 'error' ] ,
142
- 'no-undefined' : [ 'off' ] ,
143
- 'no-unused-vars' : [ 'error' ] ,
144
- 'no-use-before-define' : [ 'error' , { functions : false } ] ,
145
-
146
- // Node.js and Common.js
147
- // http://eslint.org/docs/rules/#nodejs-and-commonjs
148
- 'callback-return' : [ 'off' ] ,
149
- 'global-require' : [ 'off' ] ,
150
- 'handle-callback-err' : [ 'error' ] ,
151
- 'no-mixed-requires' : [ 'error' ] ,
152
- 'no-new-require' : [ 'error' ] ,
153
- 'no-path-concat' : [ 'error' ] ,
154
- 'no-process-env' : [ 'off' ] ,
155
- 'no-process-exit' : [ 'error' ] ,
156
- 'no-restricted-modules' : [ 'error' ] ,
157
- 'no-sync' : [ 'off' ] ,
158
-
159
- // ECMAScript 6
160
- // http://eslint.org/docs/rules/#ecmascript-6
161
- 'arrow-body-style' : [ 'error' ] ,
162
- 'arrow-parens' : [ 'error' , 'as-needed' ] ,
163
- 'arrow-spacing' : [ 'error' ] ,
164
- 'constructor-super' : [ 'error' ] ,
165
- 'generator-star-spacing' : [ 'error' ] ,
166
- 'no-class-assign' : [ 'error' ] ,
167
- 'no-confusing-arrow' : [ 'off' ] ,
168
- 'no-const-assign' : [ 'error' ] ,
169
- 'no-dupe-class-members' : [ 'error' ] ,
170
- 'no-duplicate-imports' : [ 'error' ] ,
171
- 'no-new-symbol' : [ 'error' ] ,
172
- 'no-restricted-imports' : [ 'off' ] ,
173
- 'no-this-before-super' : [ 'error' ] ,
174
- 'no-useless-computed-key' : [ 'error' ] ,
175
- 'no-useless-constructor' : [ 'error' ] ,
176
- 'no-useless-rename' : [ 'error' ] ,
177
- 'no-var' : [ 'error' ] ,
178
- 'object-shorthand' : [ 'error' ] ,
179
- 'prefer-arrow-callback' : [ 'error' ] ,
180
- 'prefer-const' : [ 'error' ] ,
181
- 'prefer-reflect' : [ 'off' ] ,
182
- 'prefer-rest-params' : [ 'error' ] ,
183
- 'prefer-spread' : [ 'error' ] ,
184
- 'prefer-template' : [ 'error' ] ,
185
- 'require-yield' : [ 'error' ] ,
186
- 'rest-spread-spacing' : [ 'error' ] ,
187
- 'sort-imports' : [ 'off' ] ,
188
- 'symbol-description' : [ 'error' ] ,
189
- 'template-curly-spacing' : [ 'error' ] ,
190
- 'yield-star-spacing' : [ 'error' ] ,
191
-
192
- 'react/no-danger' : [ 'off' ] ,
193
- 'react/display-name' : [ 'off' ] ,
194
- 'react/jsx-key' : [ 'error' ] ,
195
- 'import/no-amd' : [ 'error' ] ,
196
- 'import/no-commonjs' : [ 'error' ] ,
197
- 'import/no-extraneous-dependencies' : [ 'error' ] ,
198
- } ,
199
31
} ;
0 commit comments