-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy path.eslintrc.js
70 lines (69 loc) · 1.85 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
const baseRules = require("eslint-config-lydell");
module.exports = {
root: true,
plugins: [
"import",
"react",
"react-hooks",
"prettier",
"simple-import-sort",
"jest",
],
parser: "babel-eslint",
env: { es6: true },
globals: {
MutationObserver: false,
clearTimeout: false,
console: false,
document: false,
fetch: false,
setTimeout: false,
window: false,
},
rules: Object.assign({}, baseRules({ import: true, react: true }), {
"prettier/prettier": "error",
"simple-import-sort/sort": "error",
}),
overrides: [
{
files: [".*.js", "*.config.js", "babel-plugin.js"],
env: { node: true },
},
{
files: ["*.test.js", "{test,__mocks__}/*.js"],
env: { node: true, jest: true },
rules: baseRules({ builtin: false, jest: true }),
},
{
files: ["src/*.js"],
rules: {
"no-restricted-syntax": [
"error",
{
selector:
":matches(FunctionDeclaration, FunctionExpression, ArrowFunctionExpression):matches([async=true], [generator=true])",
message:
"async functions and generators are not allowed, because it requires a big runtime in older browsers, which we don’t want to force on all package consumers. Use `.then()` instead.",
},
{
selector: "ForOfStatement",
message:
"for-of loops are not allowed, because they are harder to get working cheaply for non-arrays in older browsers. Use `.forEach()` or similar instead.",
},
],
},
},
{
files: ["{components,pages,test/fixtures}/*.js"],
rules: {
"import/no-unresolved": ["error", { ignore: ["djedi-react"] }],
"no-invalid-this": "off",
},
},
],
settings: {
react: {
version: "detect",
},
},
};