UNPKG

14.4 kBJavaScriptView Raw
1'use strict';
2
3/* eslint-env node */
4/* eslint-disable array-bracket-newline */
5
6module.exports = {
7 parserOptions: {
8 'ecmaVersion': 7
9 },
10 env: {
11 'browser': false,
12 'node': false,
13 'commonjs': false,
14 'shared-node-browser': false,
15 'es6': true,
16 'worker': false,
17 'amd': false,
18 'mocha': false,
19 'jasmine': false,
20 'jest': false,
21 'phantomjs': false,
22 'protractor': false,
23 'qunit': false,
24 'jquery': false,
25 'prototypejs': false,
26 'shelljs': false,
27 'meteor': false,
28 'mongo': false,
29 'applescript': false,
30 'nashorn': false,
31 'serviceworker': false,
32 'atomtest': false,
33 'embertest': false,
34 'webextensions': false,
35 'greasemonkey': false
36 },
37
38 'rules': {
39 // Possible Errors (http://eslint.org/docs/rules/#possible-errors)
40 'for-direction': 'error',
41 'getter-return': 'error',
42 'no-await-in-loop': 'error',
43 'no-compare-neg-zero': 'error',
44 'no-cond-assign': ['error', 'except-parens'],
45 'no-console': 'error',
46 'no-constant-condition': 'error',
47 'no-control-regex': 'error',
48 'no-debugger': 'error',
49 'no-dupe-args': 'error',
50 'no-dupe-keys': 'error',
51 'no-duplicate-case': 'error',
52 'no-empty': 'error',
53 'no-empty-character-class': 'error',
54 'no-ex-assign': 'error',
55 'no-extra-boolean-cast': 'error',
56 'no-extra-parens': 'off',
57 'no-extra-semi': 'error',
58 'no-func-assign': 'error',
59 'no-inner-declarations': 'error',
60 'no-invalid-regexp': 'error',
61 'no-irregular-whitespace': 'error',
62 'no-obj-calls': 'error',
63 'no-prototype-builtins': 'off',
64 'no-regex-spaces': 'error',
65 'no-sparse-arrays': 'error',
66 'no-template-curly-in-string': 'error',
67 'no-unexpected-multiline': 'error',
68 'no-unreachable': 'error',
69 'no-unsafe-finally': 'error',
70 'no-unsafe-negation': 'error',
71 'use-isnan': 'error',
72 'valid-jsdoc': 'off',
73 'valid-typeof': 'error',
74
75 // Best Practices (http://eslint.org/docs/rules/#best-practices)
76 'accessor-pairs': [
77 'error',
78 {
79 'getWithoutSet': false,
80 'setWithoutGet': true
81 }
82 ],
83 'array-callback-return': 'error',
84 'block-scoped-var': 'error',
85 'class-methods-use-this': 'error',
86 'complexity': ['error', 20],
87 'consistent-return': 'error',
88 'curly': 'error',
89 'default-case': 'error',
90 'dot-location': ['error', 'property'],
91 'dot-notation': 'error',
92 'eqeqeq': 'error',
93 'guard-for-in': 'error',
94 'no-alert': 'error',
95 'no-caller': 'error',
96 'no-case-declarations': 'error',
97 'no-div-regex': 'off',
98 'no-else-return': 'off',
99 'no-empty-function': 'error',
100 'no-empty-pattern': 'error',
101 'no-eq-null': 'error',
102 'no-eval': 'error',
103 'no-extend-native': 'error',
104 'no-extra-bind': 'error',
105 'no-extra-label': 'error',
106 'no-fallthrough': 'error',
107 'no-floating-decimal': 'error',
108 'no-global-assign': [
109 'error',
110 {
111 'exceptions': []
112 }
113 ],
114 'no-implicit-coercion': [
115 'error',
116 {
117 'boolean': false,
118 'number': true,
119 'string': false
120 }
121 ],
122 'no-implicit-globals': 'error',
123 'no-implied-eval': 'error',
124 'no-invalid-this': 'off',
125 'no-iterator': 'error',
126 'no-labels': 'error',
127 'no-lone-blocks': 'error',
128 'no-loop-func': 'error',
129 'no-magic-numbers': 'off',
130 'no-multi-spaces': 'error',
131 'no-multi-str': 'error',
132 'no-new': 'error',
133 'no-new-func': 'error',
134 'no-new-wrappers': 'error',
135 'no-octal': 'error',
136 'no-octal-escape': 'error',
137 'no-param-reassign': [
138 'error',
139 {
140 'props': false
141 }
142 ],
143 'no-proto': 'error',
144 'no-redeclare': 'error',
145 'no-restricted-properties': 'off',
146 'no-return-assign': ['error', 'except-parens'],
147 'no-return-await': 'error',
148 'no-script-url': 'error',
149 'no-self-assign': 'error',
150 'no-self-compare': 'error',
151 'no-sequences': 'error',
152 'no-throw-literal': 'error',
153 'no-unmodified-loop-condition': 'error',
154 'no-unused-expressions': 'error',
155 'no-unused-labels': 'error',
156 'no-useless-call': 'error',
157 'no-useless-concat': 'error',
158 'no-useless-escape': 'error',
159 'no-useless-return': 'error',
160 'no-void': 'error',
161 'no-warning-comments': 'off',
162 'no-with': 'error',
163 'radix': 'error',
164 'prefer-promise-reject-errors': 'error',
165 'require-await': 'error',
166 'vars-on-top': 'off',
167 'wrap-iife': ['error', 'inside', {
168 'functionPrototypeMethods': true
169 }],
170 'yoda': ['error', 'never'],
171
172 // Strict Mode (http://eslint.org/docs/rules/#strict-mode)
173 'strict': ['error', 'global'],
174
175 // Variables (http://eslint.org/docs/rules/#variables)
176 'init-declarations': 'off',
177 'no-catch-shadow': 'error',
178 'no-delete-var': 'error',
179 'no-label-var': 'error',
180 'no-restricted-globals': 'error',
181 'no-shadow': 'error',
182 'no-shadow-restricted-names': 'error',
183 'no-undef': 'error',
184 'no-undef-init': 'error',
185 'no-undefined': 'off',
186 'no-unused-vars': [
187 'error',
188 {
189 'vars': 'local',
190 'args': 'none'
191 }
192 ],
193 'no-use-before-define': ['error', 'nofunc'],
194
195 // Node.js and CommonJS (http://eslint.org/docs/rules/#nodejs-and-commonjs)
196 'callback-return': 'error',
197 'global-require': 'error',
198 'handle-callback-err': 'error',
199 'no-buffer-constructor': 'error',
200 'no-mixed-requires': [
201 'error',
202 {
203 'grouping': true,
204 'allowCall': true
205 }
206 ],
207 'no-new-require': 'error',
208 'no-path-concat': 'error',
209 'no-process-env': 'error',
210 'no-process-exit': 'error',
211 'no-restricted-modules': 'off',
212 'no-sync': 'off',
213
214 // Stylistic Issues (http://eslint.org/docs/rules/#stylistic-issues)
215 'array-bracket-newline': [
216 'error',
217 {
218 'multiline': true
219 }
220 ],
221 'array-bracket-spacing': ['error', 'never'],
222 'array-element-newline': 'off',
223 'block-spacing': ['error', 'always'],
224 'brace-style': [
225 'error',
226 '1tbs',
227 {
228 'allowSingleLine': true
229 }
230 ],
231 'camelcase': 'off',
232 'capitalized-comments': 'off',
233 'comma-dangle': ['error', 'never'],
234 'comma-spacing': [
235 'error',
236 {
237 'before': false,
238 'after': true
239 }
240 ],
241 'comma-style': ['error', 'last'],
242 'computed-property-spacing': ['error', 'never'],
243 'consistent-this': ['error', 'self'],
244 'eol-last': 'error',
245 'func-call-spacing': [2, 'never'],
246 'func-names': 'off',
247 'func-name-matching': 'off',
248 'function-paren-newline': ['error', 'multiline'],
249 'func-style': ['error', 'declaration'],
250 'id-blacklist': 'error',
251 'id-length': 'off',
252 'id-match': 'off',
253 'indent': [
254 'error',
255 4,
256 {
257 'SwitchCase': 1,
258 'VariableDeclarator': 1
259 }
260 ],
261 'jsx-quotes': ['error', 'prefer-double'],
262 'key-spacing': [
263 'error',
264 {
265 'beforeColon': false,
266 'afterColon': true
267 }
268 ],
269 'keyword-spacing': [
270 'error',
271 {
272 'before': true,
273 'after': true
274 }
275 ],
276 'line-comment-position': 'off',
277 'linebreak-style': ['error', 'unix'],
278 'lines-around-comment': 'off',
279 'max-depth': ['error', 5],
280 'max-len': [
281 'error',
282 {
283 'code': 120,
284 'tabWidth': 4,
285 'comments': 120,
286 'ignoreComments': false,
287 'ignoreRegExpLiterals': true,
288 'ignoreStrings': false,
289 'ignoreTemplateLiterals': false,
290 'ignoreTrailingComments': true,
291 'ignoreUrls': false
292 }
293 ],
294 'max-lines': [
295 'error',
296 {
297 'max': 500,
298 'skipBlankLines': true,
299 'skipComments': true
300 }
301 ],
302 'max-nested-callbacks': ['error', 5],
303 'max-params': ['error', 6],
304 'max-statements': [
305 'error',
306 25,
307 {
308 'ignoreTopLevelFunctions': true
309 }
310 ],
311 'max-statements-per-line': [
312 'error',
313 {
314 'max': 1
315 }
316 ],
317 'multiline-ternary': 'off',
318 'new-cap': [
319 'error',
320 {
321 'newIsCap': true,
322 'capIsNew': true,
323 'properties': true
324 }
325 ],
326 'new-parens': 'error',
327 'newline-per-chained-call': 'off',
328 'no-array-constructor': 'error',
329 'no-bitwise': 'error',
330 'no-continue': 'off',
331 'no-inline-comments': 'off',
332 'no-lonely-if': 'error',
333 'no-mixed-operators': 'off',
334 'no-mixed-spaces-and-tabs': 'error',
335 'no-multi-assign': 'error',
336 'no-multiple-empty-lines': 'error',
337 'no-negated-condition': 'off',
338 'no-nested-ternary': 'error',
339 'no-new-object': 'error',
340 'no-plusplus': 'off',
341 'no-restricted-syntax': ['error', 'WithStatement'],
342 'no-tabs': 'error',
343 'no-ternary': 'off',
344 'no-trailing-spaces': ['error', {
345 'skipBlankLines': false,
346 'ignoreComments': true
347 }],
348 'no-underscore-dangle': 'off',
349 'no-unneeded-ternary': 'error',
350 'no-whitespace-before-property': 'error',
351 'nonblock-statement-body-position': 'off',
352 'object-curly-newline': 'off',
353 'object-curly-spacing': ['error', 'always'],
354 'object-property-newline': [
355 'error',
356 {
357 'allowMultiplePropertiesPerLine': true
358 }
359 ],
360 'one-var': 'off',
361 'one-var-declaration-per-line': ['error', 'initializations'],
362 'operator-assignment': ['error', 'always'],
363 'operator-linebreak': ['error', 'after'],
364 'padded-blocks': ['error', 'never'],
365 'padding-line-between-statements': ['error',
366 {
367 'blankLine': 'always',
368 'prev': 'directive',
369 'next': '*'
370 }
371 ],
372 'quote-props': 'off',
373 'quotes': [
374 'error',
375 'single',
376 {
377 'avoidEscape': true
378 }
379 ],
380 'require-jsdoc': 'off',
381 'semi': 'error',
382 'semi-spacing': [
383 'error',
384 {
385 'before': false,
386 'after': true
387 }
388 ],
389 'sort-keys': 'off',
390 'sort-vars': 'off',
391 'space-before-blocks': 'off',
392 'space-before-function-paren': [
393 'error',
394 {
395 'anonymous': 'always',
396 'named': 'never',
397 'asyncArrow': 'always'
398 }
399 ],
400 'space-in-parens': ['error', 'never'],
401 'space-infix-ops': 'error',
402 'space-unary-ops': [
403 'error',
404 {
405 'words': true,
406 'nonwords': false
407 }
408 ],
409 'spaced-comment': [
410 'error',
411 'always',
412 {
413 'block': {
414 'balanced': true
415 }
416 }
417 ],
418 'switch-colon-spacing': [
419 'error',
420 {
421 'after': true,
422 'before': false
423 }
424 ],
425 'template-tag-spacing': ['error', 'never'],
426 'unicode-bom': ['error', 'never'],
427 'wrap-regex': 'off',
428
429 // ECMAScript 6 (http://eslint.org/docs/rules/#ecmascript-6)
430 'arrow-body-style': ['error', 'as-needed'],
431 'arrow-parens': ['error', 'as-needed'],
432 'arrow-spacing': [
433 'error',
434 {
435 'before': true,
436 'after': true
437 }
438 ],
439 'constructor-super': 'error',
440 'generator-star-spacing': [
441 'error',
442 {
443 'before': false,
444 'after': true
445 }
446 ],
447 'no-class-assign': 'error',
448 'no-confusing-arrow': ['error', {
449 'allowParens': true
450 }],
451 'no-const-assign': 'error',
452 'no-dupe-class-members': 'error',
453 'no-duplicate-imports': 'error',
454 'no-new-symbol': 'error',
455 'no-restricted-imports': 'error',
456 'no-this-before-super': 'error',
457 'no-useless-computed-key': 'error',
458 'no-useless-constructor': 'error',
459 'no-useless-rename': 'error',
460 'no-var': 'error',
461 'object-shorthand': 'error',
462 'prefer-arrow-callback': 'off',
463 'prefer-const': 'error',
464 'prefer-destructuring': ['off'],
465 'prefer-numeric-literals': 'error',
466 'prefer-rest-params': 'off',
467 'prefer-spread': 'error',
468 'prefer-template': 'error',
469 'require-yield': 'error',
470 'rest-spread-spacing': ['error', 'never'],
471 'sort-imports': 'off',
472 'symbol-description': 'error',
473 'template-curly-spacing': ['error', 'never'],
474 'yield-star-spacing': ['error', 'before']
475 }
476};