-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc.js
67 lines (67 loc) · 2.28 KB
/
.eslintrc.js
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
module.exports = {
root: true,
env: {
// es6: true, // Allow: 'Symbol'. alias of 'es2015'
// es2017: true,
es2020: true, // Allow: BigInt(including literal: 1n)
// es2021: true, // Allow: String.prototype.replaceAll
node: true, // Allow: `module.exports`
browser: true, // Allow: `window`, `alert`
},
extends: [
'eslint:recommended', // node_modules/eslint/conf/eslint-recommended.js
'plugin:react/recommended', // node_modules/eslint-plugin-react/index.js
'plugin:jsx-a11y/recommended', // node_modules/eslint-plugin-jsx-a11y/lib/index.js
// 'airbnb',
'plugin:prettier/recommended',
],
parser: '@babel/eslint-parser',
parserOptions: {
requireConfigFile: false, // for babel parser
sourceType: 'module', // included in airbnb
// ecmaVersion: 2015 // included in 'env.es6'
},
plugins: ['eslint-plugin-react', 'eslint-plugin-jsx-a11y'],
settings: {
react: {
version: 'detect',
},
},
rules: {
'linebreak-style': 0, // airbnb set to 'LF', not friendly to Windows which by default use CRLF from github clone
'no-tabs': 0,
indent: [2, 'tab'],
'react/jsx-indent': [2, 'tab'], // airbnb set to '[2, 2]', conflict with 'indent' setting
quotes: [2, 'single'],
/**
* The rule being disabled by `plugin:@typescript-eslint/recommended`
* see
* https://stackoverflow.com/questions/65054079/eslint-with-typescript-and-firebase-no-undef-error
* still no idea why it says 'TypeScript just does this significantly better'
*/
// 'no-undef': 2,
'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: '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.',
},
],
},
};