-
Notifications
You must be signed in to change notification settings - Fork 20
/
eslint.config.js
83 lines (82 loc) · 2.93 KB
/
eslint.config.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
const eslintTypeScriptParser = require("@typescript-eslint/parser");
const eslintTypeScriptPlugin = require("@typescript-eslint/eslint-plugin");
const eslintPluginReactHooks = require("eslint-plugin-react-hooks");
const eslintPluginReact = require("eslint-plugin-react");
const eslintPluginImport = require("eslint-plugin-import");
const eslintPluginUnusedImports = require("eslint-plugin-unused-imports");
const prettier = require("prettier");
module.exports = [{
ignores: ['src/mirage/', '**/node_modules/'],
},
{
files: ['**/*.{ts,tsx,js}'],
languageOptions: {
// tells eslint to use the TypeScript parser
parser: eslintTypeScriptParser,
// tell the TypeScript parser that we want to use JSX syntax
parserOptions: {
"tsx": true,
"jsx": true,
"js": true,
"useJSXTextNode": true,
"project": "./tsconfig.json",
"tsconfigRootDir": "."
},
globals: {
"window": "readonly",
"describe": "readonly",
"test": "readonly",
"expect": "readonly",
"it": "readonly",
"process": "readonly",
"document": "readonly"
},
},
settings: {
"react": {
"version": "detect"
}
},
// includes the typescript specific rules found here: https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#supported-rules
plugins: {
"@typescript-eslint": eslintTypeScriptPlugin,
"react-hooks": eslintPluginReactHooks,
"react": eslintPluginReact,
"eslint-plugin-react-hooks": eslintPluginReactHooks,
"unused-imports": eslintPluginUnusedImports,
"import": eslintPluginImport,
"prettier": prettier
},
rules: {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/interface-name-prefix": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/triple-slash-reference": ["error", { "lib": "always", "path": "always", "types": "prefer-import" }],
"import/extensions": "off",
"import/no-cycle": "warn",
"import/no-named-as-default": "off",
"import/no-unresolved": "off",
"import/order": ["warn", {
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}],
"no-console": ["error", {
"allow": ["warn", "error"]
}],
"prettier/prettier": "off",
"react/prop-types": "off",
"react/jsx-uses-react": "warn",
"react/jsx-uses-vars": "warn",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "error",
"unused-imports/no-unused-imports": "warn",
"no-unused-vars": [
"warn",
{ "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" }
]
}
}];