-
Notifications
You must be signed in to change notification settings - Fork 8
/
.eslintrc.js
30 lines (30 loc) · 1.2 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
const expensive = !!process.env["ESLINT_EXPENSIVE"];
const errLevel = process.env["ESLINT_STRICT"] ? "error" : "warn";
module.exports = {
parser: "@typescript-eslint/parser", // Specifies the ESLint parser
extends: [
"prettier/@typescript-eslint", // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier
],
parserOptions: {
ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
sourceType: "module", // Allows for the use of imports,
project: expensive ? "./tsconfig-build.json" : undefined,
tsconfigRootDir: expensive ? "." : undefined,
ecmaFeatures: {
jsx: true,
},
useJSXTextNode: true,
},
plugins: ["@typescript-eslint", "jest", "lodash", "react-hooks"],
rules: {
...(expensive ? { "@typescript-eslint/no-floating-promises": errLevel } : {}),
"no-console": [
errLevel,
{ allow: ["time", "timeEnd", "trace", "warn", "error", "info", "groupEnd", "group", "groupCollapsed"] },
],
"jest/no-focused-tests": errLevel,
"lodash/import-scope": [errLevel, "member"],
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
},
};