@book000/eslint-config 1.15.44 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.mjs +333 -13
- package/package.json +1 -1
- package/test.mjs +14 -2
package/index.mjs
CHANGED
|
@@ -9,8 +9,339 @@ export default tseslint.config(
|
|
|
9
9
|
// Standard JS のルールセット(スタイル系は prettier に委ねるため無効化)
|
|
10
10
|
...neostandard({ noStyle: true }),
|
|
11
11
|
...tseslint.configs.recommended,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
{
|
|
13
|
+
// eslint-plugin-unicorn のルールを flat/recommended に頼らず明示的に列挙する。
|
|
14
|
+
// 理由: flat/recommended は unicorn のバージョンアップごとに収録ルールが
|
|
15
|
+
// 無断で増減し、本パッケージに依存する多数のプロジェクトへ一斉に
|
|
16
|
+
// 新規エラーが波及するリスクがあるため。新しいルールを取り込む場合は
|
|
17
|
+
// このリストへ明示的に追記すること(unicorn の CHANGELOG を確認して判断する)。
|
|
18
|
+
//
|
|
19
|
+
// 生成方法: eslint-plugin-unicorn (現在インストールされている 71.1.0) の
|
|
20
|
+
// flat/recommended が定義するルール一覧を元に、以下を除外・調整して作成した。
|
|
21
|
+
// - deprecated ルールは対象外
|
|
22
|
+
// - catch-error-name, filename-case はオプション付きで設定するため、
|
|
23
|
+
// 下記の専用ブロックに記載し、ここでは省略する
|
|
24
|
+
// - 意図的に off とするルール(下記コメント参照)
|
|
25
|
+
//
|
|
26
|
+
// 注意: このリストは eslint-plugin-unicorn の特定バージョン (71.1.0) 時点の
|
|
27
|
+
// flat/recommended を元に生成した固定スナップショットである。unicorn を
|
|
28
|
+
// アップデートする際は、追加・削除・改名されたルールが無いか CHANGELOG を
|
|
29
|
+
// 確認し、このリストへ反映すること。反映を怠ると、削除・改名されたルール ID
|
|
30
|
+
// を参照したままとなり、ESLint の設定検証エラーで全ユーザーがクラッシュする
|
|
31
|
+
// おそれがある。
|
|
32
|
+
plugins: { unicorn },
|
|
33
|
+
rules: {
|
|
34
|
+
// 集約処理のイディオムとして正当な用途が多く、for ループへの
|
|
35
|
+
// 書き換え強制がかえって可読性を落とすため無効化する
|
|
36
|
+
"unicorn/no-array-reduce": "off",
|
|
37
|
+
// クロージャで意図的に外側スコープの変数を捕捉する関数まで
|
|
38
|
+
// 最上位への移動を要求し、誤検知が多いため無効化する
|
|
39
|
+
"unicorn/consistent-function-scoping": "off",
|
|
40
|
+
// トップレベル await を許可する(IIFE 併用の CLI ツール等のため)
|
|
41
|
+
"unicorn/prefer-top-level-await": "off",
|
|
42
|
+
// 省略形を許可する (dev -> development, prod -> production などの変換をさせない)
|
|
43
|
+
"unicorn/name-replacements": "off",
|
|
44
|
+
// null を許可する
|
|
45
|
+
"unicorn/no-null": "off",
|
|
46
|
+
// 無駄な undefined を許可する
|
|
47
|
+
"unicorn/no-useless-undefined": "off",
|
|
48
|
+
// クラスメンバーの順序(private before public)を強制しない。
|
|
49
|
+
// public-first の慣習は API の可読性として広く使われているため。
|
|
50
|
+
"unicorn/consistent-class-member-order": "off",
|
|
51
|
+
//
|
|
52
|
+
// 以下、上記以外の flat/recommended 収録ルールをすべて明示的に error とする
|
|
53
|
+
"unicorn/better-dom-traversing": "error",
|
|
54
|
+
"unicorn/class-reference-in-static-methods": "error",
|
|
55
|
+
"unicorn/consistent-assert": "error",
|
|
56
|
+
"unicorn/consistent-boolean-name": "error",
|
|
57
|
+
"unicorn/consistent-compound-words": "error",
|
|
58
|
+
"unicorn/consistent-conditional-object-spread": "error",
|
|
59
|
+
"unicorn/consistent-date-clone": "error",
|
|
60
|
+
"unicorn/consistent-empty-array-spread": "error",
|
|
61
|
+
"unicorn/consistent-existence-index-check": "error",
|
|
62
|
+
"unicorn/consistent-export-decorator-position": "error",
|
|
63
|
+
"unicorn/consistent-json-file-read": "error",
|
|
64
|
+
"unicorn/consistent-optional-chaining": "error",
|
|
65
|
+
"unicorn/consistent-template-literal-escape": "error",
|
|
66
|
+
"unicorn/consistent-tuple-labels": "error",
|
|
67
|
+
"unicorn/default-export-style": "error",
|
|
68
|
+
"unicorn/dom-node-dataset": "error",
|
|
69
|
+
"unicorn/empty-brace-spaces": "error",
|
|
70
|
+
"unicorn/error-message": "error",
|
|
71
|
+
"unicorn/escape-case": "error",
|
|
72
|
+
"unicorn/expiring-todo-comments": "error",
|
|
73
|
+
"unicorn/explicit-length-check": "error",
|
|
74
|
+
"unicorn/explicit-timer-delay": "error",
|
|
75
|
+
"unicorn/import-style": "error",
|
|
76
|
+
"unicorn/isolated-functions": "error",
|
|
77
|
+
"unicorn/logical-assignment-operators": "error",
|
|
78
|
+
"unicorn/max-nested-calls": "error",
|
|
79
|
+
"unicorn/new-for-builtins": "error",
|
|
80
|
+
"unicorn/no-abusive-eslint-disable": "error",
|
|
81
|
+
"unicorn/no-accessor-recursion": "error",
|
|
82
|
+
"unicorn/no-accidental-bitwise-operator": "error",
|
|
83
|
+
"unicorn/no-anonymous-default-export": "error",
|
|
84
|
+
"unicorn/no-array-callback-reference": "error",
|
|
85
|
+
"unicorn/no-array-concat-in-loop": "error",
|
|
86
|
+
"unicorn/no-array-fill-with-reference-type": "error",
|
|
87
|
+
"unicorn/no-array-from-fill": "error",
|
|
88
|
+
"unicorn/no-array-method-this-argument": "error",
|
|
89
|
+
"unicorn/no-array-reverse": "error",
|
|
90
|
+
"unicorn/no-array-sort": "error",
|
|
91
|
+
"unicorn/no-array-sort-for-min-max": "error",
|
|
92
|
+
"unicorn/no-array-splice": "error",
|
|
93
|
+
"unicorn/no-async-promise-finally": "error",
|
|
94
|
+
"unicorn/no-await-expression-member": "error",
|
|
95
|
+
"unicorn/no-await-in-promise-methods": "error",
|
|
96
|
+
"unicorn/no-blob-to-file": "error",
|
|
97
|
+
"unicorn/no-boolean-sort-comparator": "error",
|
|
98
|
+
"unicorn/no-break-in-nested-loop": "error",
|
|
99
|
+
"unicorn/no-canvas-to-image": "error",
|
|
100
|
+
"unicorn/no-chained-comparison": "error",
|
|
101
|
+
"unicorn/no-collection-bracket-access": "error",
|
|
102
|
+
"unicorn/no-computed-property-existence-check": "error",
|
|
103
|
+
"unicorn/no-confusing-array-splice": "error",
|
|
104
|
+
"unicorn/no-confusing-array-with": "error",
|
|
105
|
+
"unicorn/no-console-spaces": "error",
|
|
106
|
+
"unicorn/no-constant-zero-expression": "error",
|
|
107
|
+
"unicorn/no-declarations-before-early-exit": "error",
|
|
108
|
+
"unicorn/no-document-cookie": "error",
|
|
109
|
+
"unicorn/no-double-comparison": "error",
|
|
110
|
+
"unicorn/no-duplicate-if-branches": "error",
|
|
111
|
+
"unicorn/no-duplicate-logical-operands": "error",
|
|
112
|
+
"unicorn/no-duplicate-loops": "error",
|
|
113
|
+
"unicorn/no-duplicate-set-values": "error",
|
|
114
|
+
"unicorn/no-empty-file": "error",
|
|
115
|
+
"unicorn/no-error-property-assignment": "error",
|
|
116
|
+
"unicorn/no-exports-in-scripts": "error",
|
|
117
|
+
"unicorn/no-for-each": "error",
|
|
118
|
+
"unicorn/no-for-loop": "error",
|
|
119
|
+
"unicorn/no-global-object-property-assignment": "error",
|
|
120
|
+
"unicorn/no-immediate-mutation": "error",
|
|
121
|
+
"unicorn/no-impossible-length-comparison": "error",
|
|
122
|
+
"unicorn/no-incorrect-query-selector": "error",
|
|
123
|
+
"unicorn/no-incorrect-template-string-interpolation": "error",
|
|
124
|
+
"unicorn/no-instanceof-builtins": "error",
|
|
125
|
+
"unicorn/no-invalid-argument-count": "error",
|
|
126
|
+
"unicorn/no-invalid-character-comparison": "error",
|
|
127
|
+
"unicorn/no-invalid-fetch-options": "error",
|
|
128
|
+
"unicorn/no-invalid-remove-event-listener": "error",
|
|
129
|
+
"unicorn/no-invalid-well-known-symbol-methods": "error",
|
|
130
|
+
"unicorn/no-late-current-target-access": "error",
|
|
131
|
+
"unicorn/no-late-event-control": "error",
|
|
132
|
+
"unicorn/no-lonely-if": "error",
|
|
133
|
+
"unicorn/no-loop-iterable-mutation": "error",
|
|
134
|
+
"unicorn/no-magic-array-flat-depth": "error",
|
|
135
|
+
"unicorn/no-mismatched-map-key": "error",
|
|
136
|
+
"unicorn/no-misrefactored-assignment": "error",
|
|
137
|
+
"unicorn/no-named-default": "error",
|
|
138
|
+
"unicorn/no-negated-array-predicate": "error",
|
|
139
|
+
"unicorn/no-negated-comparison": "error",
|
|
140
|
+
"unicorn/no-negated-condition": "error",
|
|
141
|
+
"unicorn/no-negation-in-equality-check": "error",
|
|
142
|
+
"unicorn/no-nested-ternary": "error",
|
|
143
|
+
"unicorn/no-new-array": "error",
|
|
144
|
+
"unicorn/no-new-buffer": "error",
|
|
145
|
+
"unicorn/no-non-function-verb-prefix": "error",
|
|
146
|
+
"unicorn/no-nonstandard-builtin-properties": "error",
|
|
147
|
+
"unicorn/no-object-as-default-parameter": "error",
|
|
148
|
+
"unicorn/no-object-methods-with-collections": "error",
|
|
149
|
+
"unicorn/no-optional-chaining-on-undeclared-variable": "error",
|
|
150
|
+
"unicorn/no-process-exit": "error",
|
|
151
|
+
"unicorn/no-redundant-comparison": "error",
|
|
152
|
+
"unicorn/no-return-array-push": "error",
|
|
153
|
+
"unicorn/no-selector-as-dom-name": "error",
|
|
154
|
+
"unicorn/no-single-promise-in-promise-methods": "error",
|
|
155
|
+
"unicorn/no-static-only-class": "error",
|
|
156
|
+
"unicorn/no-subtraction-comparison": "error",
|
|
157
|
+
"unicorn/no-thenable": "error",
|
|
158
|
+
"unicorn/no-this-assignment": "error",
|
|
159
|
+
"unicorn/no-this-outside-of-class": "error",
|
|
160
|
+
"unicorn/no-top-level-assignment-in-function": "error",
|
|
161
|
+
"unicorn/no-top-level-side-effects": "error",
|
|
162
|
+
"unicorn/no-typeof-undefined": "error",
|
|
163
|
+
"unicorn/no-uncalled-method": "error",
|
|
164
|
+
"unicorn/no-undeclared-class-members": "error",
|
|
165
|
+
"unicorn/no-unnecessary-array-flat-depth": "error",
|
|
166
|
+
"unicorn/no-unnecessary-array-flat-map": "error",
|
|
167
|
+
"unicorn/no-unnecessary-array-splice-count": "error",
|
|
168
|
+
"unicorn/no-unnecessary-await": "error",
|
|
169
|
+
"unicorn/no-unnecessary-boolean-comparison": "error",
|
|
170
|
+
"unicorn/no-unnecessary-fetch-options": "error",
|
|
171
|
+
"unicorn/no-unnecessary-global-this": "error",
|
|
172
|
+
"unicorn/no-unnecessary-nested-ternary": "error",
|
|
173
|
+
"unicorn/no-unnecessary-polyfills": "error",
|
|
174
|
+
"unicorn/no-unnecessary-slice-end": "error",
|
|
175
|
+
"unicorn/no-unnecessary-splice": "error",
|
|
176
|
+
"unicorn/no-unreadable-array-destructuring": "error",
|
|
177
|
+
"unicorn/no-unreadable-for-of-expression": "error",
|
|
178
|
+
"unicorn/no-unreadable-iife": "error",
|
|
179
|
+
"unicorn/no-unreadable-object-destructuring": "error",
|
|
180
|
+
"unicorn/no-unsafe-buffer-conversion": "error",
|
|
181
|
+
"unicorn/no-unsafe-promise-all-settled-values": "error",
|
|
182
|
+
"unicorn/no-unsafe-property-key": "error",
|
|
183
|
+
"unicorn/no-unsafe-string-replacement": "error",
|
|
184
|
+
"unicorn/no-unused-array-method-return": "error",
|
|
185
|
+
"unicorn/no-useless-boolean-cast": "error",
|
|
186
|
+
"unicorn/no-useless-coercion": "error",
|
|
187
|
+
"unicorn/no-useless-collection-argument": "error",
|
|
188
|
+
"unicorn/no-useless-compound-assignment": "error",
|
|
189
|
+
"unicorn/no-useless-concat": "error",
|
|
190
|
+
"unicorn/no-useless-continue": "error",
|
|
191
|
+
"unicorn/no-useless-delete-check": "error",
|
|
192
|
+
"unicorn/no-useless-else": "error",
|
|
193
|
+
"unicorn/no-useless-error-capture-stack-trace": "error",
|
|
194
|
+
"unicorn/no-useless-fallback-in-spread": "error",
|
|
195
|
+
"unicorn/no-useless-iterator-to-array": "error",
|
|
196
|
+
"unicorn/no-useless-length-check": "error",
|
|
197
|
+
"unicorn/no-useless-logical-operand": "error",
|
|
198
|
+
"unicorn/no-useless-override": "error",
|
|
199
|
+
"unicorn/no-useless-promise-resolve-reject": "error",
|
|
200
|
+
"unicorn/no-useless-recursion": "error",
|
|
201
|
+
"unicorn/no-useless-spread": "error",
|
|
202
|
+
"unicorn/no-useless-switch-case": "error",
|
|
203
|
+
"unicorn/no-useless-template-literals": "error",
|
|
204
|
+
"unicorn/no-xor-as-exponentiation": "error",
|
|
205
|
+
"unicorn/no-zero-fractions": "error",
|
|
206
|
+
"unicorn/number-literal-case": "error",
|
|
207
|
+
"unicorn/numeric-separators-style": "error",
|
|
208
|
+
"unicorn/operator-assignment": "error",
|
|
209
|
+
"unicorn/prefer-abort-signal-any": "error",
|
|
210
|
+
"unicorn/prefer-abort-signal-timeout": "error",
|
|
211
|
+
"unicorn/prefer-add-event-listener": "error",
|
|
212
|
+
"unicorn/prefer-add-event-listener-options": "error",
|
|
213
|
+
"unicorn/prefer-aggregate-error": "error",
|
|
214
|
+
"unicorn/prefer-array-find": "error",
|
|
215
|
+
"unicorn/prefer-array-flat": "error",
|
|
216
|
+
"unicorn/prefer-array-flat-map": "error",
|
|
217
|
+
"unicorn/prefer-array-from-async": "error",
|
|
218
|
+
"unicorn/prefer-array-from-map": "error",
|
|
219
|
+
"unicorn/prefer-array-from-range": "error",
|
|
220
|
+
"unicorn/prefer-array-index-of": "error",
|
|
221
|
+
"unicorn/prefer-array-iterable-methods": "error",
|
|
222
|
+
"unicorn/prefer-array-last-methods": "error",
|
|
223
|
+
"unicorn/prefer-array-slice": "error",
|
|
224
|
+
"unicorn/prefer-array-some": "error",
|
|
225
|
+
"unicorn/prefer-at": "error",
|
|
226
|
+
"unicorn/prefer-await": "error",
|
|
227
|
+
"unicorn/prefer-bigint-literals": "error",
|
|
228
|
+
"unicorn/prefer-blob-reading-methods": "error",
|
|
229
|
+
"unicorn/prefer-block-statement-over-iife": "error",
|
|
230
|
+
"unicorn/prefer-boolean-return": "error",
|
|
231
|
+
"unicorn/prefer-class-fields": "error",
|
|
232
|
+
"unicorn/prefer-classlist-toggle": "error",
|
|
233
|
+
"unicorn/prefer-code-point": "error",
|
|
234
|
+
"unicorn/prefer-continue": "error",
|
|
235
|
+
"unicorn/prefer-date-now": "error",
|
|
236
|
+
"unicorn/prefer-default-parameters": "error",
|
|
237
|
+
"unicorn/prefer-direct-iteration": "error",
|
|
238
|
+
"unicorn/prefer-dom-node-append": "error",
|
|
239
|
+
"unicorn/prefer-dom-node-remove": "error",
|
|
240
|
+
"unicorn/prefer-dom-node-replace-children": "error",
|
|
241
|
+
"unicorn/prefer-dom-node-text-content": "error",
|
|
242
|
+
"unicorn/prefer-early-return": "error",
|
|
243
|
+
"unicorn/prefer-else-if": "error",
|
|
244
|
+
"unicorn/prefer-event-target": "error",
|
|
245
|
+
"unicorn/prefer-export-from": "error",
|
|
246
|
+
"unicorn/prefer-flat-math-min-max": "error",
|
|
247
|
+
"unicorn/prefer-get-or-insert-computed": "error",
|
|
248
|
+
"unicorn/prefer-global-number-constants": "error",
|
|
249
|
+
"unicorn/prefer-global-this": "error",
|
|
250
|
+
"unicorn/prefer-group-by": "error",
|
|
251
|
+
"unicorn/prefer-has-check": "error",
|
|
252
|
+
"unicorn/prefer-hoisting-branch-code": "error",
|
|
253
|
+
"unicorn/prefer-https": "error",
|
|
254
|
+
"unicorn/prefer-identifier-import-export-specifiers": "error",
|
|
255
|
+
"unicorn/prefer-includes": "error",
|
|
256
|
+
"unicorn/prefer-includes-over-repeated-comparisons": "error",
|
|
257
|
+
"unicorn/prefer-iterable-in-constructor": "error",
|
|
258
|
+
"unicorn/prefer-iterator-helpers": "error",
|
|
259
|
+
"unicorn/prefer-iterator-to-array": "error",
|
|
260
|
+
"unicorn/prefer-iterator-to-array-at-end": "error",
|
|
261
|
+
"unicorn/prefer-keyboard-event-key": "error",
|
|
262
|
+
"unicorn/prefer-location-assign": "error",
|
|
263
|
+
"unicorn/prefer-logical-operator-over-ternary": "error",
|
|
264
|
+
"unicorn/prefer-map-from-entries": "error",
|
|
265
|
+
"unicorn/prefer-math-abs": "error",
|
|
266
|
+
"unicorn/prefer-math-constants": "error",
|
|
267
|
+
"unicorn/prefer-math-min-max": "error",
|
|
268
|
+
"unicorn/prefer-math-trunc": "error",
|
|
269
|
+
"unicorn/prefer-minimal-ternary": "error",
|
|
270
|
+
"unicorn/prefer-modern-dom-apis": "error",
|
|
271
|
+
"unicorn/prefer-modern-math-apis": "error",
|
|
272
|
+
"unicorn/prefer-module": "error",
|
|
273
|
+
"unicorn/prefer-native-coercion-functions": "error",
|
|
274
|
+
"unicorn/prefer-negative-index": "error",
|
|
275
|
+
"unicorn/prefer-node-protocol": "error",
|
|
276
|
+
"unicorn/prefer-number-coercion": "error",
|
|
277
|
+
"unicorn/prefer-number-is-safe-integer": "error",
|
|
278
|
+
"unicorn/prefer-number-properties": "error",
|
|
279
|
+
"unicorn/prefer-object-define-properties": "error",
|
|
280
|
+
"unicorn/prefer-object-destructuring-defaults": "error",
|
|
281
|
+
"unicorn/prefer-object-from-entries": "error",
|
|
282
|
+
"unicorn/prefer-object-iterable-methods": "error",
|
|
283
|
+
"unicorn/prefer-observer-apis": "error",
|
|
284
|
+
"unicorn/prefer-optional-catch-binding": "error",
|
|
285
|
+
"unicorn/prefer-path2d": "error",
|
|
286
|
+
"unicorn/prefer-private-class-fields": "error",
|
|
287
|
+
"unicorn/prefer-promise-try": "error",
|
|
288
|
+
"unicorn/prefer-promise-with-resolvers": "error",
|
|
289
|
+
"unicorn/prefer-prototype-methods": "error",
|
|
290
|
+
"unicorn/prefer-query-selector": "error",
|
|
291
|
+
"unicorn/prefer-queue-microtask": "error",
|
|
292
|
+
"unicorn/prefer-reflect-apply": "error",
|
|
293
|
+
"unicorn/prefer-regexp-test": "error",
|
|
294
|
+
"unicorn/prefer-response-static-json": "error",
|
|
295
|
+
"unicorn/prefer-scoped-selector": "error",
|
|
296
|
+
"unicorn/prefer-set-has": "error",
|
|
297
|
+
"unicorn/prefer-set-methods": "error",
|
|
298
|
+
"unicorn/prefer-set-size": "error",
|
|
299
|
+
"unicorn/prefer-simple-condition-first": "error",
|
|
300
|
+
"unicorn/prefer-simple-sort-comparator": "error",
|
|
301
|
+
"unicorn/prefer-simplified-conditions": "error",
|
|
302
|
+
"unicorn/prefer-single-array-predicate": "error",
|
|
303
|
+
"unicorn/prefer-single-call": "error",
|
|
304
|
+
"unicorn/prefer-single-object-destructuring": "error",
|
|
305
|
+
"unicorn/prefer-single-replace": "error",
|
|
306
|
+
"unicorn/prefer-smaller-scope": "error",
|
|
307
|
+
"unicorn/prefer-split-limit": "error",
|
|
308
|
+
"unicorn/prefer-spread": "error",
|
|
309
|
+
"unicorn/prefer-string-match-all": "error",
|
|
310
|
+
"unicorn/prefer-string-pad-start-end": "error",
|
|
311
|
+
"unicorn/prefer-string-raw": "error",
|
|
312
|
+
"unicorn/prefer-string-repeat": "error",
|
|
313
|
+
"unicorn/prefer-string-replace-all": "error",
|
|
314
|
+
"unicorn/prefer-string-slice": "error",
|
|
315
|
+
"unicorn/prefer-string-starts-ends-with": "error",
|
|
316
|
+
"unicorn/prefer-string-trim-start-end": "error",
|
|
317
|
+
"unicorn/prefer-structured-clone": "error",
|
|
318
|
+
"unicorn/prefer-switch": "error",
|
|
319
|
+
"unicorn/prefer-ternary": "error",
|
|
320
|
+
"unicorn/prefer-toggle-attribute": "error",
|
|
321
|
+
"unicorn/prefer-type-error": "error",
|
|
322
|
+
"unicorn/prefer-type-literal-last": "error",
|
|
323
|
+
"unicorn/prefer-unary-minus": "error",
|
|
324
|
+
"unicorn/prefer-unicode-code-point-escapes": "error",
|
|
325
|
+
"unicorn/prefer-url-can-parse": "error",
|
|
326
|
+
"unicorn/prefer-url-href": "error",
|
|
327
|
+
"unicorn/prefer-url-search-parameters": "error",
|
|
328
|
+
"unicorn/prefer-while-loop-condition": "error",
|
|
329
|
+
"unicorn/relative-url-style": "error",
|
|
330
|
+
"unicorn/require-array-join-separator": "error",
|
|
331
|
+
"unicorn/require-array-sort-compare": "error",
|
|
332
|
+
"unicorn/require-css-escape": "error",
|
|
333
|
+
"unicorn/require-module-attributes": "error",
|
|
334
|
+
"unicorn/require-module-specifiers": "error",
|
|
335
|
+
"unicorn/require-number-to-fixed-digits-argument": "error",
|
|
336
|
+
"unicorn/require-passive-events": "error",
|
|
337
|
+
"unicorn/require-proxy-trap-boolean-return": "error",
|
|
338
|
+
"unicorn/switch-case-braces": "error",
|
|
339
|
+
"unicorn/switch-case-break-position": "error",
|
|
340
|
+
"unicorn/template-indent": "error",
|
|
341
|
+
"unicorn/text-encoding-identifier-case": "error",
|
|
342
|
+
"unicorn/throw-new-error": "error",
|
|
343
|
+
},
|
|
344
|
+
},
|
|
14
345
|
{
|
|
15
346
|
files: ["**/*.ts", "**/*.tsx"],
|
|
16
347
|
languageOptions: {
|
|
@@ -66,17 +397,6 @@ export default tseslint.config(
|
|
|
66
397
|
// 変数などの未定義使用について、TypeScript準拠とする
|
|
67
398
|
"no-use-before-define": "off",
|
|
68
399
|
"@typescript-eslint/no-use-before-define": "error",
|
|
69
|
-
// トップレベルのawaitを許可する
|
|
70
|
-
"unicorn/prefer-top-level-await": "off",
|
|
71
|
-
// クラスメンバーの順序(private before public)を強制しない。
|
|
72
|
-
// public-first の慣習は API の可読性として広く使われているため。
|
|
73
|
-
"unicorn/consistent-class-member-order": "off",
|
|
74
|
-
// 省略形を許可する (dev -> development, prod -> productionなどの変換をさせない)
|
|
75
|
-
"unicorn/prevent-abbreviations": "off",
|
|
76
|
-
// nullを許可する
|
|
77
|
-
"unicorn/no-null": "off",
|
|
78
|
-
// 無駄なundefinedを許可する
|
|
79
|
-
"unicorn/no-useless-undefined": "off",
|
|
80
400
|
},
|
|
81
401
|
},
|
|
82
402
|
{
|
package/package.json
CHANGED
package/test.mjs
CHANGED
|
@@ -12,10 +12,10 @@ async function main() {
|
|
|
12
12
|
rules: ["unicorn/prefer-top-level-await"],
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
name: "
|
|
15
|
+
name: "name-replacements: dev, prodなど省略形はOK",
|
|
16
16
|
code: "const dev = true; const prod = false;",
|
|
17
17
|
shouldError: false,
|
|
18
|
-
rules: ["unicorn/
|
|
18
|
+
rules: ["unicorn/name-replacements"],
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: "no-null: nullの使用はOK",
|
|
@@ -23,6 +23,18 @@ async function main() {
|
|
|
23
23
|
shouldError: false,
|
|
24
24
|
rules: ["unicorn/no-null"],
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
name: "no-array-reduce: reduceの使用はOK",
|
|
28
|
+
code: "const sum = [1, 2, 3].reduce((accumulator, value) => accumulator + value, 0);",
|
|
29
|
+
shouldError: false,
|
|
30
|
+
rules: ["unicorn/no-array-reduce"],
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "consistent-function-scoping: 外側スコープを捕捉するネストした関数はOK",
|
|
34
|
+
code: "function outer() { const base = 1; function inner() { return base; } return inner(); }",
|
|
35
|
+
shouldError: false,
|
|
36
|
+
rules: ["unicorn/consistent-function-scoping"],
|
|
37
|
+
},
|
|
26
38
|
{
|
|
27
39
|
name: "no-use-before-define: 定義前の変数使用はエラー",
|
|
28
40
|
code: "console.log(a); const a = 1;",
|