-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.eslintrc.js
95 lines (95 loc) · 2.14 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
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
module.exports = {
parser: `@babel/eslint-parser`,
extends: [
`google`,
`eslint:recommended`,
`plugin:flowtype/recommended`,
`plugin:react/recommended`,
`prettier`,
],
plugins: [`flowtype`, `prettier`, `react`, `filenames`, `@babel`],
parserOptions: {
ecmaVersion: 2023,
sourceType: `module`,
ecmaFeatures: {
jsx: true,
},
babelOptions: {
configFile: `./.babelrc.js`,
},
},
env: {
browser: true,
es2023: true,
node: true,
jest: true,
},
globals: {
before: true,
after: true,
spyOn: true,
// These should be in scope but for some reason eslint can't see them
NodeJS: true,
JSX: true,
NodeRequire: true,
TimerHandler: true,
__PATH_PREFIX__: true,
__BASE_PATH__: true,
__ASSET_PREFIX__: true,
_CFLAGS_: true,
__GATSBY: true,
},
rules: {
"@babel/no-unused-expressions": [
`error`,
{
allowTaggedTemplates: true,
},
],
"no-unused-expressions": `off`,
"@babel/no-invalid-this": `error`,
"no-invalid-this": `off`,
"arrow-body-style": [
`error`,
`as-needed`,
{ requireReturnForObjectLiteral: true },
],
"new-cap": `off`,
"no-unused-vars": [
`warn`,
{
varsIgnorePattern: `^_`,
argsIgnorePattern: `^_`,
ignoreRestSiblings: true,
},
],
"consistent-return": [`error`],
"filenames/match-regex": [`error`, `^[a-z-\\d\\.]+$`, true],
"no-console": `off`,
"no-inner-declarations": `off`,
"prettier/prettier": `error`,
quotes: [`error`, `backtick`],
"react/display-name": `off`,
"react/jsx-key": `warn`,
"react/no-unescaped-entities": `off`,
"react/prop-types": `off`,
"require-jsdoc": `off`,
"valid-jsdoc": `off`,
"prefer-promise-reject-errors": `warn`,
"no-prototype-builtins": `warn`,
"guard-for-in": `warn`,
"spaced-comment": [
`error`,
`always`,
{ markers: [`/`], exceptions: [`*`, `+`] },
],
camelcase: [
`error`,
{
properties: `never`,
ignoreDestructuring: true,
allow: [`^unstable_`],
},
],
},
}