This repository has been archived by the owner on Apr 3, 2024. It is now read-only.
/
.eslintrc.js
112 lines (111 loc) · 2.74 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/* eslint-env node */
const sharedPlugins = ["jsdoc", "react", "react-hooks", "prettier"];
const sharedExtends = [
"eslint:recommended",
"plugin:jsdoc/recommended",
"plugin:react/recommended",
];
const sharedPrettierExtends = ["prettier", "prettier/react"];
const sharedRules = {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"jsdoc/no-types": "error",
"jsdoc/require-param": "off",
"jsdoc/require-param-type": "off",
"jsdoc/require-returns": "off",
"jsdoc/require-returns-type": "off",
};
module.exports = {
parser: "@typescript-eslint/parser",
plugins: [...sharedPlugins],
extends: [...sharedExtends, ...sharedPrettierExtends],
rules: { ...sharedRules },
settings: {
jsdoc: {
mode: "typescript",
tagNamePreference: {
abstract: false,
access: false,
alias: false,
async: false,
arguments: false,
author: false,
borrows: false,
callback: false,
category: "category",
class: false,
classdesc: false,
constant: false,
constructs: false,
copyright: false,
default: false,
deprecated: false,
description: false,
enum: false,
example: false,
exports: false,
external: false,
file: false,
fires: false,
function: false,
generator: false,
global: false,
hideconstructor: false,
implements: false,
inheritdoc: false,
inner: false,
instance: false,
interface: false,
kind: false,
lends: false,
license: false,
member: false,
memberof: false,
mixes: false,
mixin: false,
module: false,
name: false,
namespace: false,
override: false,
package: false,
private: false,
property: false,
protected: false,
public: false,
readonly: false,
requires: false,
see: false,
since: false,
static: false,
summary: false,
this: false,
throws: false,
todo: false,
tutorial: false,
type: false,
typedef: false,
typeparam: "typeparam",
variation: false,
version: false,
yields: false,
},
},
react: {
version: "detect",
},
},
overrides: [
{
files: ["**/*.ts", "**/*.tsx"],
plugins: [...sharedPlugins, "@typescript-eslint"],
extends: [
...sharedExtends,
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
...sharedPrettierExtends,
"prettier/@typescript-eslint",
],
rules: { ...sharedRules },
},
],
};