-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc.yml
133 lines (128 loc) · 2.81 KB
/
.eslintrc.yml
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
env:
browser: true
es2021: true
parser: "@typescript-eslint/parser"
parserOptions:
ecmaFeatures:
jsx: true
ecmaVersion: latest
sourceType: module
project:
- "./tsconfig.json"
extends:
- plugin:react/recommended
- plugin:react-hooks/recommended
- airbnb
- airbnb/hooks
- plugin:import/recommended
- plugin:import/typescript
- plugin:@typescript-eslint/recommended-requiring-type-checking
- prettier
plugins:
- "@typescript-eslint"
- react
- react-hooks
- jsx-a11y
- import
- unused-imports
rules:
# basics
prefer-const: error
no-unused-vars: off # 未使用の変数のチェックは @typescript-eslint/no-unused-vars に任せているのでこちらはoff
prefer-arrow-callback: error
func-style:
- error
- expression
no-void:
- error
- allowAsStatement: true
padding-line-between-statements:
- error
- blankLine: always
prev: "*"
next: return
# jsx-a11y
jsx-a11y/no-autofocus: off
jsx-a11y/anchor-is-valid:
- error
- components:
- Link
specialLink:
- hrefLeft
- hrefRight
aspects:
- invalidHref
- preferButton
# import
import/extensions: off
import/no-duplicates: error
unused-imports/no-unused-imports: error
import/order:
- error
- groups:
- builtin
- external
- internal
- parent
- sibling
- object
- index
- type
pathGroups:
- pattern: "{react,react-dom/**,react-router-dom}"
group: builtin
position: before
newlines-between: always
pathGroupsExcludedImportTypes:
- builtin
alphabetize:
order: asc
caseInsensitive: true
# @typescript-eslint
"@typescript-eslint/no-use-before-define": error
"@typescript-eslint/explicit-module-boundary-types": off
"@typescript-eslint/no-unused-vars":
- error
- vars: all
args: after-used
ignoreRestSiblings: false
argsIgnorePattern: "_"
varsIgnorePattern: "_"
"@typescript-eslint/naming-convention":
- error
- selector:
- typeAlias
- typeParameter
format:
- PascalCase
- selector:
- property
- method
format:
- camelCase
# React
react/prop-types: off
react/react-in-jsx-scope: off
react/jsx-one-expression-per-line: off
react/destructuring-assignment: error
react/jsx-filename-extension:
- error
- extensions:
- ".jsx"
- ".tsx"
react/function-component-definition:
- error
- namedComponents: arrow-function
react/jsx-props-no-spreading:
- error
- html: enforce
custom: enforce
explicitSpread: ignore
# 除外対象
ignorePatterns:
- "build/"
- "dist/"
- "public/"
- "**/node_modules/"
- "*.config.js"
- "*.config.ts"