@pobammer-ts/eslint-cease-nonsense-rules 0.10.0 → 0.11.0
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/dist/rules/ban-react-fc.js +2 -30
- package/dist/rules/ban-react-fc.js.map +1 -1
- package/dist/rules/enforce-ianitor-check-type.js +69 -157
- package/dist/rules/enforce-ianitor-check-type.js.map +1 -1
- package/dist/rules/no-color3-constructor.d.ts +0 -17
- package/dist/rules/no-color3-constructor.js +9 -31
- package/dist/rules/no-color3-constructor.js.map +1 -1
- package/dist/rules/no-instance-methods-without-this.js +2 -3
- package/dist/rules/no-instance-methods-without-this.js.map +1 -1
- package/dist/rules/no-print.d.ts +0 -15
- package/dist/rules/no-print.js +0 -21
- package/dist/rules/no-print.js.map +1 -1
- package/dist/rules/no-shorthand-names.d.ts +0 -24
- package/dist/rules/no-shorthand-names.js +18 -72
- package/dist/rules/no-shorthand-names.js.map +1 -1
- package/dist/rules/no-warn.d.ts +0 -15
- package/dist/rules/no-warn.js +0 -21
- package/dist/rules/no-warn.js.map +1 -1
- package/dist/rules/prefer-sequence-overloads.js +9 -16
- package/dist/rules/prefer-sequence-overloads.js.map +1 -1
- package/dist/rules/prefer-udim2-shorthand.d.ts +0 -14
- package/dist/rules/prefer-udim2-shorthand.js +17 -46
- package/dist/rules/prefer-udim2-shorthand.js.map +1 -1
- package/dist/rules/require-named-effect-functions.js +197 -59
- package/dist/rules/require-named-effect-functions.js.map +1 -1
- package/dist/rules/require-react-component-keys.d.ts +5 -6
- package/dist/rules/require-react-component-keys.js +119 -129
- package/dist/rules/require-react-component-keys.js.map +1 -1
- package/dist/rules/use-exhaustive-dependencies.d.ts +0 -42
- package/dist/rules/use-exhaustive-dependencies.js +100 -227
- package/dist/rules/use-exhaustive-dependencies.js.map +1 -1
- package/package.json +9 -7
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
* Default configuration values for the rule.
|
|
3
|
-
*/
|
|
1
|
+
import { TSESTree } from "@typescript-eslint/types";
|
|
4
2
|
const DEFAULT_OPTIONS = {
|
|
5
3
|
allowRootKeys: false,
|
|
6
4
|
ignoreCallExpressions: ["ReactTree.mount", "CreateReactStory"],
|
|
5
|
+
iterationMethods: [
|
|
6
|
+
"map",
|
|
7
|
+
"filter",
|
|
8
|
+
"forEach",
|
|
9
|
+
"flatMap",
|
|
10
|
+
"reduce",
|
|
11
|
+
"reduceRight",
|
|
12
|
+
"some",
|
|
13
|
+
"every",
|
|
14
|
+
"find",
|
|
15
|
+
"findIndex",
|
|
16
|
+
],
|
|
17
|
+
memoizationHooks: ["useCallback", "useMemo"],
|
|
7
18
|
};
|
|
8
|
-
/**
|
|
9
|
-
* Parent node types that simply wrap another expression without changing its semantics.
|
|
10
|
-
* These should be skipped when walking up the AST to analyze structural context.
|
|
11
|
-
*/
|
|
12
19
|
const WRAPPER_PARENT_TYPES = new Set([
|
|
13
20
|
"ParenthesizedExpression",
|
|
14
21
|
"TSAsExpression",
|
|
@@ -18,9 +25,6 @@ const WRAPPER_PARENT_TYPES = new Set([
|
|
|
18
25
|
"TSInstantiationExpression",
|
|
19
26
|
"ChainExpression",
|
|
20
27
|
]);
|
|
21
|
-
/**
|
|
22
|
-
* Node types that act as transparent wrappers when walking from a call argument to its call expression.
|
|
23
|
-
*/
|
|
24
28
|
const ARGUMENT_WRAPPER_TYPES = new Set([
|
|
25
29
|
...WRAPPER_PARENT_TYPES,
|
|
26
30
|
"AwaitExpression",
|
|
@@ -29,37 +33,18 @@ const ARGUMENT_WRAPPER_TYPES = new Set([
|
|
|
29
33
|
"SequenceExpression",
|
|
30
34
|
"SpreadElement",
|
|
31
35
|
]);
|
|
32
|
-
/**
|
|
33
|
-
* Walks up the AST from a starting node, skipping wrapper expressions that do not
|
|
34
|
-
* materially affect JSX placement (e.g. parentheses, type assertions).
|
|
35
|
-
*
|
|
36
|
-
* @param node - The starting node whose wrappers should be skipped.
|
|
37
|
-
* @returns The first ancestor node that is not a simple wrapper, or undefined.
|
|
38
|
-
*/
|
|
39
36
|
function ascendPastWrappers(node) {
|
|
40
37
|
let current = node;
|
|
41
38
|
while (current && WRAPPER_PARENT_TYPES.has(current.type))
|
|
42
39
|
current = current.parent;
|
|
43
40
|
return current;
|
|
44
41
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Checks if a JSX element has a key attribute.
|
|
47
|
-
*
|
|
48
|
-
* @param node - The JSX element to check.
|
|
49
|
-
* @returns True if the element has a key attribute.
|
|
50
|
-
*/
|
|
51
42
|
function hasKeyAttribute(node) {
|
|
52
43
|
for (const attribute of node.openingElement.attributes)
|
|
53
44
|
if (attribute.type === "JSXAttribute" && attribute.name.name === "key")
|
|
54
45
|
return true;
|
|
55
46
|
return false;
|
|
56
47
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Checks if a CallExpression is for React.forwardRef or React.memo.
|
|
59
|
-
*
|
|
60
|
-
* @param callExpr - The CallExpression to check.
|
|
61
|
-
* @returns True if the call is for forwardRef or memo.
|
|
62
|
-
*/
|
|
63
48
|
function isReactComponentHOC(callExpr) {
|
|
64
49
|
const { callee } = callExpr;
|
|
65
50
|
if (callee.type === "Identifier")
|
|
@@ -71,12 +56,6 @@ function isReactComponentHOC(callExpr) {
|
|
|
71
56
|
return callee.property.name === "forwardRef" || callee.property.name === "memo";
|
|
72
57
|
return false;
|
|
73
58
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Finds the nearest function-like ancestor for a given node.
|
|
76
|
-
*
|
|
77
|
-
* @param node - The starting node.
|
|
78
|
-
* @returns The nearest function declaration/expression/arrow function ancestor if any.
|
|
79
|
-
*/
|
|
80
59
|
function getEnclosingFunctionLike(node) {
|
|
81
60
|
let current = node.parent;
|
|
82
61
|
while (current) {
|
|
@@ -88,12 +67,29 @@ function getEnclosingFunctionLike(node) {
|
|
|
88
67
|
}
|
|
89
68
|
return undefined;
|
|
90
69
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
70
|
+
function isIterationOrMemoCallback(callExpr, iterationMethods, memoizationHooks) {
|
|
71
|
+
const { callee } = callExpr;
|
|
72
|
+
if (callee.type === "Identifier" && memoizationHooks.has(callee.name))
|
|
73
|
+
return true;
|
|
74
|
+
if (callee.type === "MemberExpression" && callee.property.type === "Identifier") {
|
|
75
|
+
const methodName = callee.property.name;
|
|
76
|
+
if (iterationMethods.has(methodName))
|
|
77
|
+
return true;
|
|
78
|
+
if (methodName === "from" &&
|
|
79
|
+
callee.object.type === "MemberExpression" &&
|
|
80
|
+
callee.object.object.type === "Identifier" &&
|
|
81
|
+
callee.object.object.name === "Array" &&
|
|
82
|
+
callExpr.arguments.length >= 2)
|
|
83
|
+
return true;
|
|
84
|
+
if (methodName === "call" &&
|
|
85
|
+
callee.object.type === "MemberExpression" &&
|
|
86
|
+
callee.object.object.type === "MemberExpression" &&
|
|
87
|
+
callee.object.object.property.type === "Identifier" &&
|
|
88
|
+
iterationMethods.has(callee.object.object.property.name))
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
97
93
|
function findEnclosingCallExpression(node) {
|
|
98
94
|
let current = node;
|
|
99
95
|
let parent = node.parent;
|
|
@@ -116,134 +112,114 @@ function findEnclosingCallExpression(node) {
|
|
|
116
112
|
}
|
|
117
113
|
return undefined;
|
|
118
114
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* @param context - ESLint rule context.
|
|
123
|
-
* @param fn - The function-like node.
|
|
124
|
-
* @returns The corresponding scope variable, when available.
|
|
125
|
-
*/
|
|
126
|
-
function getVariableForFunction(context, fn) {
|
|
127
|
-
if (fn.type === "FunctionDeclaration") {
|
|
128
|
-
const declared = context.sourceCode.getDeclaredVariables(fn);
|
|
115
|
+
function getVariableForFunction(context, functionLike) {
|
|
116
|
+
if (functionLike.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration) {
|
|
117
|
+
const declared = context.sourceCode.getDeclaredVariables(functionLike);
|
|
129
118
|
if (declared.length > 0)
|
|
130
119
|
return declared[0];
|
|
131
120
|
return undefined;
|
|
132
121
|
}
|
|
133
|
-
const parent =
|
|
122
|
+
const { parent } = functionLike;
|
|
134
123
|
if (!parent)
|
|
135
124
|
return undefined;
|
|
136
|
-
if (parent.type ===
|
|
125
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.VariableDeclarator ||
|
|
126
|
+
parent.type === TSESTree.AST_NODE_TYPES.AssignmentExpression) {
|
|
137
127
|
const declared = context.sourceCode.getDeclaredVariables(parent);
|
|
138
128
|
if (declared.length > 0)
|
|
139
129
|
return declared[0];
|
|
140
130
|
}
|
|
141
131
|
return undefined;
|
|
142
132
|
}
|
|
143
|
-
|
|
144
|
-
* Checks whether a scope reference is used as an argument to a call expression that is not a React HOC.
|
|
145
|
-
*
|
|
146
|
-
* @param reference - The reference to evaluate.
|
|
147
|
-
* @returns True if the reference participates in a non-HOC call as an argument.
|
|
148
|
-
*/
|
|
149
|
-
function referenceActsAsCallback(reference) {
|
|
133
|
+
function referenceActsAsCallback(reference, iterationMethods, memoizationHooks) {
|
|
150
134
|
if (!reference.isRead())
|
|
151
135
|
return false;
|
|
152
136
|
const callExpression = findEnclosingCallExpression(reference.identifier);
|
|
153
137
|
if (!callExpression)
|
|
154
138
|
return false;
|
|
155
|
-
|
|
139
|
+
if (isReactComponentHOC(callExpression))
|
|
140
|
+
return false;
|
|
141
|
+
return isIterationOrMemoCallback(callExpression, iterationMethods, memoizationHooks);
|
|
156
142
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
function isFunctionUsedAsCallback(context, fn) {
|
|
166
|
-
const inlineCall = findEnclosingCallExpression(fn);
|
|
167
|
-
if (inlineCall && !isReactComponentHOC(inlineCall))
|
|
168
|
-
return true;
|
|
169
|
-
const variable = getVariableForFunction(context, fn);
|
|
143
|
+
function isFunctionUsedAsCallback(context, functionLike, iterationMethods, memoizationHooks) {
|
|
144
|
+
const inlineCall = findEnclosingCallExpression(functionLike);
|
|
145
|
+
if (inlineCall) {
|
|
146
|
+
if (isReactComponentHOC(inlineCall))
|
|
147
|
+
return false;
|
|
148
|
+
return isIterationOrMemoCallback(inlineCall, iterationMethods, memoizationHooks);
|
|
149
|
+
}
|
|
150
|
+
const variable = getVariableForFunction(context, functionLike);
|
|
170
151
|
if (!variable)
|
|
171
152
|
return false;
|
|
172
153
|
for (const reference of variable.references)
|
|
173
|
-
if (referenceActsAsCallback(reference))
|
|
154
|
+
if (referenceActsAsCallback(reference, iterationMethods, memoizationHooks))
|
|
174
155
|
return true;
|
|
175
156
|
return false;
|
|
176
157
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
158
|
+
const SHOULD_ASCEND_TYPES = new Set([
|
|
159
|
+
TSESTree.AST_NODE_TYPES.ConditionalExpression,
|
|
160
|
+
TSESTree.AST_NODE_TYPES.LogicalExpression,
|
|
161
|
+
]);
|
|
162
|
+
const IS_FUNCTION_EXPRESSION = new Set([
|
|
163
|
+
TSESTree.AST_NODE_TYPES.FunctionExpression,
|
|
164
|
+
TSESTree.AST_NODE_TYPES.ArrowFunctionExpression,
|
|
165
|
+
]);
|
|
183
166
|
function isTopLevelReturn(node) {
|
|
184
167
|
let parent = ascendPastWrappers(node.parent);
|
|
185
168
|
if (!parent)
|
|
186
169
|
return false;
|
|
187
|
-
if (parent.type ===
|
|
170
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer)
|
|
188
171
|
parent = ascendPastWrappers(parent.parent);
|
|
189
172
|
if (!parent)
|
|
190
173
|
return false;
|
|
191
|
-
while (parent && (parent.type
|
|
174
|
+
while (parent && SHOULD_ASCEND_TYPES.has(parent.type))
|
|
192
175
|
parent = ascendPastWrappers(parent.parent);
|
|
193
176
|
if (!parent)
|
|
194
177
|
return false;
|
|
195
|
-
if (parent.type ===
|
|
178
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer)
|
|
196
179
|
parent = ascendPastWrappers(parent.parent);
|
|
197
180
|
if (!parent)
|
|
198
181
|
return false;
|
|
199
|
-
if (parent.type ===
|
|
182
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.ReturnStatement) {
|
|
200
183
|
let currentNode = ascendPastWrappers(parent.parent);
|
|
201
|
-
if (currentNode?.type ===
|
|
184
|
+
if (currentNode?.type === TSESTree.AST_NODE_TYPES.BlockStatement)
|
|
202
185
|
currentNode = ascendPastWrappers(currentNode.parent);
|
|
203
186
|
if (!currentNode)
|
|
204
187
|
return false;
|
|
205
|
-
if (
|
|
188
|
+
if (IS_FUNCTION_EXPRESSION.has(currentNode.type)) {
|
|
206
189
|
const functionParent = ascendPastWrappers(currentNode.parent);
|
|
207
|
-
if (functionParent?.type ===
|
|
190
|
+
if (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)
|
|
208
191
|
return isReactComponentHOC(functionParent);
|
|
209
192
|
return true;
|
|
210
193
|
}
|
|
211
|
-
return currentNode.type ===
|
|
194
|
+
return currentNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration;
|
|
212
195
|
}
|
|
213
|
-
if (parent.type ===
|
|
196
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {
|
|
214
197
|
const functionParent = ascendPastWrappers(parent.parent);
|
|
215
|
-
if (functionParent?.type ===
|
|
198
|
+
if (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)
|
|
216
199
|
return isReactComponentHOC(functionParent);
|
|
217
200
|
return true;
|
|
218
201
|
}
|
|
219
202
|
return false;
|
|
220
203
|
}
|
|
221
|
-
/**
|
|
222
|
-
* Checks if a JSX element is an argument to an ignored call expression.
|
|
223
|
-
*
|
|
224
|
-
* @param node - The JSX element or fragment to check.
|
|
225
|
-
* @param ignoreList - List of function names to ignore.
|
|
226
|
-
* @returns True if the element is passed to an ignored function.
|
|
227
|
-
*/
|
|
228
204
|
function isIgnoredCallExpression(node, ignoreList) {
|
|
229
205
|
let parent = node.parent;
|
|
230
206
|
if (!parent)
|
|
231
207
|
return false;
|
|
232
|
-
if (parent.type ===
|
|
208
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {
|
|
233
209
|
parent = parent.parent;
|
|
234
210
|
if (!parent)
|
|
235
211
|
return false;
|
|
236
212
|
}
|
|
237
213
|
const maxDepth = 20;
|
|
238
|
-
for (let depth = 0; depth < maxDepth && parent; depth
|
|
214
|
+
for (let depth = 0; depth < maxDepth && parent; depth += 1) {
|
|
239
215
|
const { type } = parent;
|
|
240
|
-
if (type ===
|
|
216
|
+
if (type === TSESTree.AST_NODE_TYPES.CallExpression) {
|
|
241
217
|
const { callee } = parent;
|
|
242
|
-
if (callee.type ===
|
|
218
|
+
if (callee.type === TSESTree.AST_NODE_TYPES.Identifier)
|
|
243
219
|
return ignoreList.includes(callee.name);
|
|
244
|
-
if (callee.type ===
|
|
245
|
-
callee.object.type ===
|
|
246
|
-
callee.property.type ===
|
|
220
|
+
if (callee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
|
|
221
|
+
callee.object.type === TSESTree.AST_NODE_TYPES.Identifier &&
|
|
222
|
+
callee.property.type === TSESTree.AST_NODE_TYPES.Identifier)
|
|
247
223
|
return ignoreList.includes(`${callee.object.name}.${callee.property.name}`);
|
|
248
224
|
return false;
|
|
249
225
|
}
|
|
@@ -251,54 +227,45 @@ function isIgnoredCallExpression(node, ignoreList) {
|
|
|
251
227
|
}
|
|
252
228
|
return false;
|
|
253
229
|
}
|
|
254
|
-
/**
|
|
255
|
-
* Checks if a JSX element is passed as a prop value.
|
|
256
|
-
*
|
|
257
|
-
* @param node - The JSX element or fragment to check.
|
|
258
|
-
* @returns True if the element is passed as a prop value.
|
|
259
|
-
*/
|
|
260
230
|
function isJSXPropValue(node) {
|
|
261
|
-
let parent = node
|
|
231
|
+
let { parent } = node;
|
|
262
232
|
if (!parent)
|
|
263
233
|
return false;
|
|
264
|
-
while (parent &&
|
|
234
|
+
while (parent &&
|
|
235
|
+
(parent.type === TSESTree.AST_NODE_TYPES.ConditionalExpression ||
|
|
236
|
+
parent.type === TSESTree.AST_NODE_TYPES.LogicalExpression))
|
|
265
237
|
parent = parent.parent;
|
|
266
238
|
if (!parent)
|
|
267
239
|
return false;
|
|
268
|
-
if (parent.type ===
|
|
240
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {
|
|
269
241
|
parent = parent.parent;
|
|
270
242
|
if (!parent)
|
|
271
243
|
return false;
|
|
272
244
|
}
|
|
273
|
-
return parent.type ===
|
|
245
|
+
return parent.type === TSESTree.AST_NODE_TYPES.JSXAttribute;
|
|
274
246
|
}
|
|
275
247
|
const docs = {
|
|
276
248
|
description: "Enforce key props on all React elements except top-level returns",
|
|
277
249
|
recommended: true,
|
|
278
250
|
};
|
|
279
251
|
const requireReactComponentKeys = {
|
|
280
|
-
/**
|
|
281
|
-
* Creates the ESLint rule visitor.
|
|
282
|
-
*
|
|
283
|
-
* @param context - The ESLint rule context.
|
|
284
|
-
* @returns The visitor object with AST node handlers.
|
|
285
|
-
*/
|
|
286
252
|
create(context) {
|
|
287
253
|
const options = {
|
|
288
254
|
...DEFAULT_OPTIONS,
|
|
289
255
|
...context.options[0],
|
|
290
256
|
};
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
*
|
|
294
|
-
* @param node - The JSX element or fragment to check.
|
|
295
|
-
*/
|
|
257
|
+
const iterationMethods = new Set(options.iterationMethods);
|
|
258
|
+
const memoizationHooks = new Set(options.memoizationHooks);
|
|
296
259
|
function checkElement(node) {
|
|
297
260
|
const functionLike = getEnclosingFunctionLike(node);
|
|
298
|
-
const isCallback = functionLike
|
|
261
|
+
const isCallback = functionLike
|
|
262
|
+
? isFunctionUsedAsCallback(context, functionLike, iterationMethods, memoizationHooks)
|
|
263
|
+
: false;
|
|
299
264
|
const isRoot = isTopLevelReturn(node);
|
|
300
265
|
if (isRoot && !isCallback) {
|
|
301
|
-
if (!options.allowRootKeys &&
|
|
266
|
+
if (!options.allowRootKeys &&
|
|
267
|
+
node.type === TSESTree.AST_NODE_TYPES.JSXElement &&
|
|
268
|
+
hasKeyAttribute(node)) {
|
|
302
269
|
context.report({
|
|
303
270
|
messageId: "rootComponentWithKey",
|
|
304
271
|
node,
|
|
@@ -310,7 +277,7 @@ const requireReactComponentKeys = {
|
|
|
310
277
|
return;
|
|
311
278
|
if (isJSXPropValue(node))
|
|
312
279
|
return;
|
|
313
|
-
if (node.type ===
|
|
280
|
+
if (node.type === TSESTree.AST_NODE_TYPES.JSXFragment) {
|
|
314
281
|
context.report({
|
|
315
282
|
messageId: "missingKey",
|
|
316
283
|
node,
|
|
@@ -355,6 +322,29 @@ const requireReactComponentKeys = {
|
|
|
355
322
|
items: { type: "string" },
|
|
356
323
|
type: "array",
|
|
357
324
|
},
|
|
325
|
+
iterationMethods: {
|
|
326
|
+
default: [
|
|
327
|
+
"map",
|
|
328
|
+
"filter",
|
|
329
|
+
"forEach",
|
|
330
|
+
"flatMap",
|
|
331
|
+
"reduce",
|
|
332
|
+
"reduceRight",
|
|
333
|
+
"some",
|
|
334
|
+
"every",
|
|
335
|
+
"find",
|
|
336
|
+
"findIndex",
|
|
337
|
+
],
|
|
338
|
+
description: "Array method names that indicate iteration contexts where keys are required",
|
|
339
|
+
items: { type: "string" },
|
|
340
|
+
type: "array",
|
|
341
|
+
},
|
|
342
|
+
memoizationHooks: {
|
|
343
|
+
default: ["useCallback", "useMemo"],
|
|
344
|
+
description: "Hook names that indicate memoization contexts where keys are required",
|
|
345
|
+
items: { type: "string" },
|
|
346
|
+
type: "array",
|
|
347
|
+
},
|
|
358
348
|
},
|
|
359
349
|
type: "object",
|
|
360
350
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-react-component-keys.js","sourceRoot":"","sources":["../../src/rules/require-react-component-keys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"require-react-component-keys.js","sourceRoot":"","sources":["../../src/rules/require-react-component-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
import { TSESTree } from "@typescript-eslint/types";
|
|
2
2
|
import type { Rule, Scope } from "eslint";
|
|
3
|
-
/**
|
|
4
|
-
* Stable result configuration.
|
|
5
|
-
*/
|
|
6
3
|
type StableResult = boolean | ReadonlySet<number> | ReadonlySet<string>;
|
|
7
4
|
declare function resetTestingMetrics(): void;
|
|
8
|
-
/**
|
|
9
|
-
* Minimal definition information used for stability analysis.
|
|
10
|
-
*/
|
|
11
5
|
interface VariableDefinitionLike {
|
|
12
6
|
readonly node: TSESTree.Node | Rule.Node;
|
|
13
7
|
readonly type: string;
|
|
14
8
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Minimal variable interface compatible with ESLint scope variables.
|
|
17
|
-
*/
|
|
18
9
|
interface VariableLike {
|
|
19
10
|
readonly defs: ReadonlyArray<VariableDefinitionLike>;
|
|
20
11
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Capture information from closure analysis.
|
|
23
|
-
*/
|
|
24
12
|
interface CaptureInfo {
|
|
25
13
|
readonly name: string;
|
|
26
14
|
readonly node: TSESTree.Node;
|
|
@@ -28,23 +16,7 @@ interface CaptureInfo {
|
|
|
28
16
|
readonly variable: VariableLike | undefined;
|
|
29
17
|
readonly depth: number;
|
|
30
18
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Checks if a stable array index is being accessed.
|
|
33
|
-
*
|
|
34
|
-
* @param stableResult - The stable result set.
|
|
35
|
-
* @param node - The variable declarator node.
|
|
36
|
-
* @param identifierName - The identifier name being accessed.
|
|
37
|
-
* @returns True if accessing a stable array index.
|
|
38
|
-
*/
|
|
39
19
|
declare function isStableArrayIndex(stableResult: StableResult | undefined, node: Scope.Definition["node"], identifierName: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Checks if a value is stable (doesn't need to be in dependencies).
|
|
42
|
-
*
|
|
43
|
-
* @param variable - The variable to check.
|
|
44
|
-
* @param identifierName - The identifier name being accessed.
|
|
45
|
-
* @param stableHooks - Map of stable hooks.
|
|
46
|
-
* @returns True if the value is stable.
|
|
47
|
-
*/
|
|
48
20
|
declare function isStableValue(variable: VariableLike | undefined, identifierName: string, stableHooks: Map<string, StableResult>): boolean;
|
|
49
21
|
/**
|
|
50
22
|
* Checks if an identifier is in a TypeScript type-only position.
|
|
@@ -65,21 +37,7 @@ declare function isInTypePosition(identifier: TSESTree.Identifier): boolean;
|
|
|
65
37
|
* @returns True if the variable is declared in the component body or is a prop.
|
|
66
38
|
*/
|
|
67
39
|
declare function isDeclaredInComponentBody(variable: VariableLike, closureNode: TSESTree.Node): boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Collects all captured identifiers from a closure.
|
|
70
|
-
*
|
|
71
|
-
* @param node - The closure node (function/arrow function).
|
|
72
|
-
* @param scope - The scope of the closure.
|
|
73
|
-
* @param sourceCode - The source code instance.
|
|
74
|
-
* @returns Array of captured identifiers.
|
|
75
|
-
*/
|
|
76
40
|
declare function collectCaptures(node: TSESTree.Node, scope: Scope.Scope, sourceCode: Rule.RuleContext["sourceCode"]): ReadonlyArray<CaptureInfo>;
|
|
77
|
-
/**
|
|
78
|
-
* Converts stableResult configuration to internal format.
|
|
79
|
-
*
|
|
80
|
-
* @param stableResult - The stable result configuration.
|
|
81
|
-
* @returns The internal stable result format.
|
|
82
|
-
*/
|
|
83
41
|
declare function convertStableResult(stableResult: boolean | number | ReadonlyArray<number> | ReadonlyArray<string>): StableResult;
|
|
84
42
|
declare const useExhaustiveDependencies: Rule.RuleModule;
|
|
85
43
|
export declare const __testing: {
|