-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path.eslintrc.js
executable file
·76 lines (76 loc) · 1.73 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
module.exports = {
root: true,
extends: [
"norton/react",
"plugin:storybook/recommended",
"prettier",
"plugin:prettier/recommended",
],
parserOptions: {
project: "./tsconfig.json",
},
rules: {
"import/no-extraneous-dependencies": [
"error",
{
packageDir: [".", "./packages/core", "./packages/react", "./website"],
},
],
"react/function-component-definition": [
"error",
{
namedComponents: "arrow-function",
unnamedComponents: "function-expression",
},
],
// Most of our components extend an HTML element's interface, and we use
// props spreading to allow access to that interface. This should only be
// done for low-level component libraries.
"react/jsx-props-no-spreading": "off",
},
overrides: [
// TypeScript
{
files: ["*.ts", "*.tsx"],
extends: [
// 'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
rules: {
// Disable prop-types since ESLint has trouble with TypeScript-defined props
// and TypeScript provides better props typing anyway
"react/prop-types": "off",
"react/require-default-props": "off",
"react/default-props-match-prop-types": "off",
},
},
// Storybook
{
files: ["*.stories.tsx"],
rules: {
"import/no-default-export": "off",
},
},
// MDX
{
files: ["*.mdx"],
extends: ["plugin:mdx/recommended"],
rules: {
"max-len": "off",
semi: "off",
"react/jsx-indent": "off",
"react/jsx-filename-extension": [
"error",
{ extensions: [".jsx", ".mdx", ".tsx"] },
],
},
},
// Tests
{
files: ["*.test.ts", "*.test.tsx"],
rules: {
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/explicit-function-return-type": "off",
},
},
],
};