@pobammer-ts/eslint-cease-nonsense-rules 0.10.1 → 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 +3 -39
- package/dist/rules/require-react-component-keys.js +40 -141
- 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,7 +1,4 @@
|
|
|
1
1
|
import { TSESTree } from "@typescript-eslint/types";
|
|
2
|
-
/**
|
|
3
|
-
* Default configuration values for the rule.
|
|
4
|
-
*/
|
|
5
2
|
const DEFAULT_OPTIONS = {
|
|
6
3
|
allowRootKeys: false,
|
|
7
4
|
ignoreCallExpressions: ["ReactTree.mount", "CreateReactStory"],
|
|
@@ -19,10 +16,6 @@ const DEFAULT_OPTIONS = {
|
|
|
19
16
|
],
|
|
20
17
|
memoizationHooks: ["useCallback", "useMemo"],
|
|
21
18
|
};
|
|
22
|
-
/**
|
|
23
|
-
* Parent node types that simply wrap another expression without changing its semantics.
|
|
24
|
-
* These should be skipped when walking up the AST to analyze structural context.
|
|
25
|
-
*/
|
|
26
19
|
const WRAPPER_PARENT_TYPES = new Set([
|
|
27
20
|
"ParenthesizedExpression",
|
|
28
21
|
"TSAsExpression",
|
|
@@ -32,9 +25,6 @@ const WRAPPER_PARENT_TYPES = new Set([
|
|
|
32
25
|
"TSInstantiationExpression",
|
|
33
26
|
"ChainExpression",
|
|
34
27
|
]);
|
|
35
|
-
/**
|
|
36
|
-
* Node types that act as transparent wrappers when walking from a call argument to its call expression.
|
|
37
|
-
*/
|
|
38
28
|
const ARGUMENT_WRAPPER_TYPES = new Set([
|
|
39
29
|
...WRAPPER_PARENT_TYPES,
|
|
40
30
|
"AwaitExpression",
|
|
@@ -43,37 +33,18 @@ const ARGUMENT_WRAPPER_TYPES = new Set([
|
|
|
43
33
|
"SequenceExpression",
|
|
44
34
|
"SpreadElement",
|
|
45
35
|
]);
|
|
46
|
-
/**
|
|
47
|
-
* Walks up the AST from a starting node, skipping wrapper expressions that do not
|
|
48
|
-
* materially affect JSX placement (e.g. parentheses, type assertions).
|
|
49
|
-
*
|
|
50
|
-
* @param node - The starting node whose wrappers should be skipped.
|
|
51
|
-
* @returns The first ancestor node that is not a simple wrapper, or undefined.
|
|
52
|
-
*/
|
|
53
36
|
function ascendPastWrappers(node) {
|
|
54
37
|
let current = node;
|
|
55
38
|
while (current && WRAPPER_PARENT_TYPES.has(current.type))
|
|
56
39
|
current = current.parent;
|
|
57
40
|
return current;
|
|
58
41
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Checks if a JSX element has a key attribute.
|
|
61
|
-
*
|
|
62
|
-
* @param node - The JSX element to check.
|
|
63
|
-
* @returns True if the element has a key attribute.
|
|
64
|
-
*/
|
|
65
42
|
function hasKeyAttribute(node) {
|
|
66
43
|
for (const attribute of node.openingElement.attributes)
|
|
67
44
|
if (attribute.type === "JSXAttribute" && attribute.name.name === "key")
|
|
68
45
|
return true;
|
|
69
46
|
return false;
|
|
70
47
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Checks if a CallExpression is for React.forwardRef or React.memo.
|
|
73
|
-
*
|
|
74
|
-
* @param callExpr - The CallExpression to check.
|
|
75
|
-
* @returns True if the call is for forwardRef or memo.
|
|
76
|
-
*/
|
|
77
48
|
function isReactComponentHOC(callExpr) {
|
|
78
49
|
const { callee } = callExpr;
|
|
79
50
|
if (callee.type === "Identifier")
|
|
@@ -85,12 +56,6 @@ function isReactComponentHOC(callExpr) {
|
|
|
85
56
|
return callee.property.name === "forwardRef" || callee.property.name === "memo";
|
|
86
57
|
return false;
|
|
87
58
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Finds the nearest function-like ancestor for a given node.
|
|
90
|
-
*
|
|
91
|
-
* @param node - The starting node.
|
|
92
|
-
* @returns The nearest function declaration/expression/arrow function ancestor if any.
|
|
93
|
-
*/
|
|
94
59
|
function getEnclosingFunctionLike(node) {
|
|
95
60
|
let current = node.parent;
|
|
96
61
|
while (current) {
|
|
@@ -102,33 +67,20 @@ function getEnclosingFunctionLike(node) {
|
|
|
102
67
|
}
|
|
103
68
|
return undefined;
|
|
104
69
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Checks if a CallExpression represents an array iteration or memoization context that requires keys.
|
|
107
|
-
*
|
|
108
|
-
* @param callExpr - The CallExpression to check.
|
|
109
|
-
* @param iterationMethods - Set of method names that indicate iteration contexts.
|
|
110
|
-
* @param memoizationHooks - Set of hook names that indicate memoization contexts.
|
|
111
|
-
* @returns True if the call represents an iteration or memo context.
|
|
112
|
-
*/
|
|
113
70
|
function isIterationOrMemoCallback(callExpr, iterationMethods, memoizationHooks) {
|
|
114
71
|
const { callee } = callExpr;
|
|
115
|
-
// Check for memoization hooks
|
|
116
72
|
if (callee.type === "Identifier" && memoizationHooks.has(callee.name))
|
|
117
73
|
return true;
|
|
118
74
|
if (callee.type === "MemberExpression" && callee.property.type === "Identifier") {
|
|
119
75
|
const methodName = callee.property.name;
|
|
120
|
-
// Check for Array iteration methods
|
|
121
76
|
if (iterationMethods.has(methodName))
|
|
122
77
|
return true;
|
|
123
|
-
// Check for Array.from with mapper
|
|
124
78
|
if (methodName === "from" &&
|
|
125
79
|
callee.object.type === "MemberExpression" &&
|
|
126
80
|
callee.object.object.type === "Identifier" &&
|
|
127
81
|
callee.object.object.name === "Array" &&
|
|
128
|
-
callExpr.arguments.length >= 2
|
|
129
|
-
)
|
|
82
|
+
callExpr.arguments.length >= 2)
|
|
130
83
|
return true;
|
|
131
|
-
// Check for Array.prototype.[method].call pattern
|
|
132
84
|
if (methodName === "call" &&
|
|
133
85
|
callee.object.type === "MemberExpression" &&
|
|
134
86
|
callee.object.object.type === "MemberExpression" &&
|
|
@@ -138,12 +90,6 @@ function isIterationOrMemoCallback(callExpr, iterationMethods, memoizationHooks)
|
|
|
138
90
|
}
|
|
139
91
|
return false;
|
|
140
92
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Walks upward from a potential call argument to find the enclosing CallExpression, if any.
|
|
143
|
-
*
|
|
144
|
-
* @param node - The starting node.
|
|
145
|
-
* @returns The nearest CallExpression where the node participates as an argument.
|
|
146
|
-
*/
|
|
147
93
|
function findEnclosingCallExpression(node) {
|
|
148
94
|
let current = node;
|
|
149
95
|
let parent = node.parent;
|
|
@@ -166,13 +112,6 @@ function findEnclosingCallExpression(node) {
|
|
|
166
112
|
}
|
|
167
113
|
return undefined;
|
|
168
114
|
}
|
|
169
|
-
/**
|
|
170
|
-
* Fetches the declared variable associated with a function-like node, if any.
|
|
171
|
-
*
|
|
172
|
-
* @param context - ESLint rule context.
|
|
173
|
-
* @param functionLike - The function-like node.
|
|
174
|
-
* @returns The corresponding scope variable, when available.
|
|
175
|
-
*/
|
|
176
115
|
function getVariableForFunction(context, functionLike) {
|
|
177
116
|
if (functionLike.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration) {
|
|
178
117
|
const declared = context.sourceCode.getDeclaredVariables(functionLike);
|
|
@@ -180,7 +119,7 @@ function getVariableForFunction(context, functionLike) {
|
|
|
180
119
|
return declared[0];
|
|
181
120
|
return undefined;
|
|
182
121
|
}
|
|
183
|
-
const parent = functionLike
|
|
122
|
+
const { parent } = functionLike;
|
|
184
123
|
if (!parent)
|
|
185
124
|
return undefined;
|
|
186
125
|
if (parent.type === TSESTree.AST_NODE_TYPES.VariableDeclarator ||
|
|
@@ -191,45 +130,24 @@ function getVariableForFunction(context, functionLike) {
|
|
|
191
130
|
}
|
|
192
131
|
return undefined;
|
|
193
132
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Checks whether a scope reference is used as an argument to a call expression that requires keys.
|
|
196
|
-
*
|
|
197
|
-
* @param reference - The reference to evaluate.
|
|
198
|
-
* @param iterationMethods - Set of method names that indicate iteration contexts.
|
|
199
|
-
* @param memoizationHooks - Set of hook names that indicate memoization contexts.
|
|
200
|
-
* @returns True if the reference participates in an iteration or memoization call as an argument.
|
|
201
|
-
*/
|
|
202
133
|
function referenceActsAsCallback(reference, iterationMethods, memoizationHooks) {
|
|
203
134
|
if (!reference.isRead())
|
|
204
135
|
return false;
|
|
205
136
|
const callExpression = findEnclosingCallExpression(reference.identifier);
|
|
206
137
|
if (!callExpression)
|
|
207
138
|
return false;
|
|
208
|
-
// React HOCs don't need keys on top-level returns
|
|
209
139
|
if (isReactComponentHOC(callExpression))
|
|
210
140
|
return false;
|
|
211
|
-
// Only iteration or memoization contexts need keys on top-level returns
|
|
212
141
|
return isIterationOrMemoCallback(callExpression, iterationMethods, memoizationHooks);
|
|
213
142
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
*
|
|
217
|
-
* @param context - ESLint rule context.
|
|
218
|
-
* @param fn - The function node to inspect.
|
|
219
|
-
* @param iterationMethods - Set of method names that indicate iteration contexts.
|
|
220
|
-
* @param memoizationHooks - Set of hook names that indicate memoization contexts.
|
|
221
|
-
* @returns True if the function participates in iteration or memoization invocations.
|
|
222
|
-
*/
|
|
223
|
-
function isFunctionUsedAsCallback(context, fn, iterationMethods, memoizationHooks) {
|
|
224
|
-
const inlineCall = findEnclosingCallExpression(fn);
|
|
143
|
+
function isFunctionUsedAsCallback(context, functionLike, iterationMethods, memoizationHooks) {
|
|
144
|
+
const inlineCall = findEnclosingCallExpression(functionLike);
|
|
225
145
|
if (inlineCall) {
|
|
226
|
-
// React HOCs don't need keys on top-level returns
|
|
227
146
|
if (isReactComponentHOC(inlineCall))
|
|
228
147
|
return false;
|
|
229
|
-
// Only iteration or memoization contexts need keys on top-level returns
|
|
230
148
|
return isIterationOrMemoCallback(inlineCall, iterationMethods, memoizationHooks);
|
|
231
149
|
}
|
|
232
|
-
const variable = getVariableForFunction(context,
|
|
150
|
+
const variable = getVariableForFunction(context, functionLike);
|
|
233
151
|
if (!variable)
|
|
234
152
|
return false;
|
|
235
153
|
for (const reference of variable.references)
|
|
@@ -237,76 +155,71 @@ function isFunctionUsedAsCallback(context, fn, iterationMethods, memoizationHook
|
|
|
237
155
|
return true;
|
|
238
156
|
return false;
|
|
239
157
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
+
]);
|
|
246
166
|
function isTopLevelReturn(node) {
|
|
247
167
|
let parent = ascendPastWrappers(node.parent);
|
|
248
168
|
if (!parent)
|
|
249
169
|
return false;
|
|
250
|
-
if (parent.type ===
|
|
170
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer)
|
|
251
171
|
parent = ascendPastWrappers(parent.parent);
|
|
252
172
|
if (!parent)
|
|
253
173
|
return false;
|
|
254
|
-
while (parent && (parent.type
|
|
174
|
+
while (parent && SHOULD_ASCEND_TYPES.has(parent.type))
|
|
255
175
|
parent = ascendPastWrappers(parent.parent);
|
|
256
176
|
if (!parent)
|
|
257
177
|
return false;
|
|
258
|
-
if (parent.type ===
|
|
178
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer)
|
|
259
179
|
parent = ascendPastWrappers(parent.parent);
|
|
260
180
|
if (!parent)
|
|
261
181
|
return false;
|
|
262
|
-
if (parent.type ===
|
|
182
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.ReturnStatement) {
|
|
263
183
|
let currentNode = ascendPastWrappers(parent.parent);
|
|
264
|
-
if (currentNode?.type ===
|
|
184
|
+
if (currentNode?.type === TSESTree.AST_NODE_TYPES.BlockStatement)
|
|
265
185
|
currentNode = ascendPastWrappers(currentNode.parent);
|
|
266
186
|
if (!currentNode)
|
|
267
187
|
return false;
|
|
268
|
-
if (
|
|
188
|
+
if (IS_FUNCTION_EXPRESSION.has(currentNode.type)) {
|
|
269
189
|
const functionParent = ascendPastWrappers(currentNode.parent);
|
|
270
|
-
if (functionParent?.type ===
|
|
190
|
+
if (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)
|
|
271
191
|
return isReactComponentHOC(functionParent);
|
|
272
192
|
return true;
|
|
273
193
|
}
|
|
274
|
-
return currentNode.type ===
|
|
194
|
+
return currentNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration;
|
|
275
195
|
}
|
|
276
|
-
if (parent.type ===
|
|
196
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {
|
|
277
197
|
const functionParent = ascendPastWrappers(parent.parent);
|
|
278
|
-
if (functionParent?.type ===
|
|
198
|
+
if (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)
|
|
279
199
|
return isReactComponentHOC(functionParent);
|
|
280
200
|
return true;
|
|
281
201
|
}
|
|
282
202
|
return false;
|
|
283
203
|
}
|
|
284
|
-
/**
|
|
285
|
-
* Checks if a JSX element is an argument to an ignored call expression.
|
|
286
|
-
*
|
|
287
|
-
* @param node - The JSX element or fragment to check.
|
|
288
|
-
* @param ignoreList - List of function names to ignore.
|
|
289
|
-
* @returns True if the element is passed to an ignored function.
|
|
290
|
-
*/
|
|
291
204
|
function isIgnoredCallExpression(node, ignoreList) {
|
|
292
205
|
let parent = node.parent;
|
|
293
206
|
if (!parent)
|
|
294
207
|
return false;
|
|
295
|
-
if (parent.type ===
|
|
208
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {
|
|
296
209
|
parent = parent.parent;
|
|
297
210
|
if (!parent)
|
|
298
211
|
return false;
|
|
299
212
|
}
|
|
300
213
|
const maxDepth = 20;
|
|
301
|
-
for (let depth = 0; depth < maxDepth && parent; depth
|
|
214
|
+
for (let depth = 0; depth < maxDepth && parent; depth += 1) {
|
|
302
215
|
const { type } = parent;
|
|
303
|
-
if (type ===
|
|
216
|
+
if (type === TSESTree.AST_NODE_TYPES.CallExpression) {
|
|
304
217
|
const { callee } = parent;
|
|
305
|
-
if (callee.type ===
|
|
218
|
+
if (callee.type === TSESTree.AST_NODE_TYPES.Identifier)
|
|
306
219
|
return ignoreList.includes(callee.name);
|
|
307
|
-
if (callee.type ===
|
|
308
|
-
callee.object.type ===
|
|
309
|
-
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)
|
|
310
223
|
return ignoreList.includes(`${callee.object.name}.${callee.property.name}`);
|
|
311
224
|
return false;
|
|
312
225
|
}
|
|
@@ -314,51 +227,35 @@ function isIgnoredCallExpression(node, ignoreList) {
|
|
|
314
227
|
}
|
|
315
228
|
return false;
|
|
316
229
|
}
|
|
317
|
-
/**
|
|
318
|
-
* Checks if a JSX element is passed as a prop value.
|
|
319
|
-
*
|
|
320
|
-
* @param node - The JSX element or fragment to check.
|
|
321
|
-
* @returns True if the element is passed as a prop value.
|
|
322
|
-
*/
|
|
323
230
|
function isJSXPropValue(node) {
|
|
324
|
-
let parent = node
|
|
231
|
+
let { parent } = node;
|
|
325
232
|
if (!parent)
|
|
326
233
|
return false;
|
|
327
|
-
while (parent &&
|
|
234
|
+
while (parent &&
|
|
235
|
+
(parent.type === TSESTree.AST_NODE_TYPES.ConditionalExpression ||
|
|
236
|
+
parent.type === TSESTree.AST_NODE_TYPES.LogicalExpression))
|
|
328
237
|
parent = parent.parent;
|
|
329
238
|
if (!parent)
|
|
330
239
|
return false;
|
|
331
|
-
if (parent.type ===
|
|
240
|
+
if (parent.type === TSESTree.AST_NODE_TYPES.JSXExpressionContainer) {
|
|
332
241
|
parent = parent.parent;
|
|
333
242
|
if (!parent)
|
|
334
243
|
return false;
|
|
335
244
|
}
|
|
336
|
-
return parent.type ===
|
|
245
|
+
return parent.type === TSESTree.AST_NODE_TYPES.JSXAttribute;
|
|
337
246
|
}
|
|
338
247
|
const docs = {
|
|
339
248
|
description: "Enforce key props on all React elements except top-level returns",
|
|
340
249
|
recommended: true,
|
|
341
250
|
};
|
|
342
251
|
const requireReactComponentKeys = {
|
|
343
|
-
/**
|
|
344
|
-
* Creates the ESLint rule visitor.
|
|
345
|
-
*
|
|
346
|
-
* @param context - The ESLint rule context.
|
|
347
|
-
* @returns The visitor object with AST node handlers.
|
|
348
|
-
*/
|
|
349
252
|
create(context) {
|
|
350
253
|
const options = {
|
|
351
254
|
...DEFAULT_OPTIONS,
|
|
352
255
|
...context.options[0],
|
|
353
256
|
};
|
|
354
|
-
// Convert arrays to Sets for performance
|
|
355
257
|
const iterationMethods = new Set(options.iterationMethods);
|
|
356
258
|
const memoizationHooks = new Set(options.memoizationHooks);
|
|
357
|
-
/**
|
|
358
|
-
* Checks a JSX element or fragment for required key prop.
|
|
359
|
-
*
|
|
360
|
-
* @param node - The JSX element or fragment to check.
|
|
361
|
-
*/
|
|
362
259
|
function checkElement(node) {
|
|
363
260
|
const functionLike = getEnclosingFunctionLike(node);
|
|
364
261
|
const isCallback = functionLike
|
|
@@ -366,7 +263,9 @@ const requireReactComponentKeys = {
|
|
|
366
263
|
: false;
|
|
367
264
|
const isRoot = isTopLevelReturn(node);
|
|
368
265
|
if (isRoot && !isCallback) {
|
|
369
|
-
if (!options.allowRootKeys &&
|
|
266
|
+
if (!options.allowRootKeys &&
|
|
267
|
+
node.type === TSESTree.AST_NODE_TYPES.JSXElement &&
|
|
268
|
+
hasKeyAttribute(node)) {
|
|
370
269
|
context.report({
|
|
371
270
|
messageId: "rootComponentWithKey",
|
|
372
271
|
node,
|
|
@@ -378,7 +277,7 @@ const requireReactComponentKeys = {
|
|
|
378
277
|
return;
|
|
379
278
|
if (isJSXPropValue(node))
|
|
380
279
|
return;
|
|
381
|
-
if (node.type ===
|
|
280
|
+
if (node.type === TSESTree.AST_NODE_TYPES.JSXFragment) {
|
|
382
281
|
context.report({
|
|
383
282
|
messageId: "missingKey",
|
|
384
283
|
node,
|
|
@@ -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: {
|