@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.
Files changed (32) hide show
  1. package/dist/rules/ban-react-fc.js +2 -30
  2. package/dist/rules/ban-react-fc.js.map +1 -1
  3. package/dist/rules/enforce-ianitor-check-type.js +69 -157
  4. package/dist/rules/enforce-ianitor-check-type.js.map +1 -1
  5. package/dist/rules/no-color3-constructor.d.ts +0 -17
  6. package/dist/rules/no-color3-constructor.js +9 -31
  7. package/dist/rules/no-color3-constructor.js.map +1 -1
  8. package/dist/rules/no-instance-methods-without-this.js +2 -3
  9. package/dist/rules/no-instance-methods-without-this.js.map +1 -1
  10. package/dist/rules/no-print.d.ts +0 -15
  11. package/dist/rules/no-print.js +0 -21
  12. package/dist/rules/no-print.js.map +1 -1
  13. package/dist/rules/no-shorthand-names.d.ts +0 -24
  14. package/dist/rules/no-shorthand-names.js +18 -72
  15. package/dist/rules/no-shorthand-names.js.map +1 -1
  16. package/dist/rules/no-warn.d.ts +0 -15
  17. package/dist/rules/no-warn.js +0 -21
  18. package/dist/rules/no-warn.js.map +1 -1
  19. package/dist/rules/prefer-sequence-overloads.js +9 -16
  20. package/dist/rules/prefer-sequence-overloads.js.map +1 -1
  21. package/dist/rules/prefer-udim2-shorthand.d.ts +0 -14
  22. package/dist/rules/prefer-udim2-shorthand.js +17 -46
  23. package/dist/rules/prefer-udim2-shorthand.js.map +1 -1
  24. package/dist/rules/require-named-effect-functions.js +197 -59
  25. package/dist/rules/require-named-effect-functions.js.map +1 -1
  26. package/dist/rules/require-react-component-keys.d.ts +3 -39
  27. package/dist/rules/require-react-component-keys.js +40 -141
  28. package/dist/rules/require-react-component-keys.js.map +1 -1
  29. package/dist/rules/use-exhaustive-dependencies.d.ts +0 -42
  30. package/dist/rules/use-exhaustive-dependencies.js +100 -227
  31. package/dist/rules/use-exhaustive-dependencies.js.map +1 -1
  32. 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 // has mapper argument
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.parent;
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
- * Determines whether a function-like node is used as a callback in iteration or memoization contexts.
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, fn);
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
- * Checks if a JSX element is a top-level return from a component.
242
- *
243
- * @param node - The JSX element or fragment to check.
244
- * @returns True if the element is directly returned from a component.
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 === "JSXExpressionContainer")
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 === "ConditionalExpression" || parent.type === "LogicalExpression"))
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 === "JSXExpressionContainer")
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 === "ReturnStatement") {
182
+ if (parent.type === TSESTree.AST_NODE_TYPES.ReturnStatement) {
263
183
  let currentNode = ascendPastWrappers(parent.parent);
264
- if (currentNode?.type === "BlockStatement")
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 (currentNode.type === "ArrowFunctionExpression" || currentNode.type === "FunctionExpression") {
188
+ if (IS_FUNCTION_EXPRESSION.has(currentNode.type)) {
269
189
  const functionParent = ascendPastWrappers(currentNode.parent);
270
- if (functionParent?.type === "CallExpression")
190
+ if (functionParent?.type === TSESTree.AST_NODE_TYPES.CallExpression)
271
191
  return isReactComponentHOC(functionParent);
272
192
  return true;
273
193
  }
274
- return currentNode.type === "FunctionDeclaration";
194
+ return currentNode.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration;
275
195
  }
276
- if (parent.type === "ArrowFunctionExpression") {
196
+ if (parent.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression) {
277
197
  const functionParent = ascendPastWrappers(parent.parent);
278
- if (functionParent?.type === "CallExpression")
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 === "JSXExpressionContainer") {
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 === "CallExpression") {
216
+ if (type === TSESTree.AST_NODE_TYPES.CallExpression) {
304
217
  const { callee } = parent;
305
- if (callee.type === "Identifier")
218
+ if (callee.type === TSESTree.AST_NODE_TYPES.Identifier)
306
219
  return ignoreList.includes(callee.name);
307
- if (callee.type === "MemberExpression" &&
308
- callee.object.type === "Identifier" &&
309
- callee.property.type === "Identifier")
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.parent;
231
+ let { parent } = node;
325
232
  if (!parent)
326
233
  return false;
327
- while (parent && (parent.type === "ConditionalExpression" || parent.type === "LogicalExpression"))
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 === "JSXExpressionContainer") {
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 === "JSXAttribute";
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 && node.type === "JSXElement" && hasKeyAttribute(node)) {
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 === "JSXFragment") {
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: {