@pobammer-ts/eslint-cease-nonsense-rules 0.11.0 → 1.0.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.
Files changed (29) hide show
  1. package/dist/configure-utilities.d.ts +68 -0
  2. package/dist/configure-utilities.js +116 -0
  3. package/dist/configure-utilities.js.map +1 -0
  4. package/dist/rules/ban-react-fc.js +4 -7
  5. package/dist/rules/ban-react-fc.js.map +1 -1
  6. package/dist/rules/enforce-ianitor-check-type.d.ts +7 -0
  7. package/dist/rules/enforce-ianitor-check-type.js +2 -2
  8. package/dist/rules/enforce-ianitor-check-type.js.map +1 -1
  9. package/dist/rules/no-color3-constructor.js +2 -1
  10. package/dist/rules/no-color3-constructor.js.map +1 -1
  11. package/dist/rules/no-shorthand-names.js +18 -18
  12. package/dist/rules/no-shorthand-names.js.map +1 -1
  13. package/dist/rules/prefer-sequence-overloads.js +17 -7
  14. package/dist/rules/prefer-sequence-overloads.js.map +1 -1
  15. package/dist/rules/prefer-udim2-shorthand.js +117 -20
  16. package/dist/rules/prefer-udim2-shorthand.js.map +1 -1
  17. package/dist/rules/require-named-effect-functions.js +103 -29
  18. package/dist/rules/require-named-effect-functions.js.map +1 -1
  19. package/dist/rules/require-paired-calls.d.ts +41 -0
  20. package/dist/rules/require-paired-calls.js +706 -0
  21. package/dist/rules/require-paired-calls.js.map +1 -0
  22. package/dist/rules/require-react-component-keys.js +18 -17
  23. package/dist/rules/require-react-component-keys.js.map +1 -1
  24. package/dist/rules/use-exhaustive-dependencies.d.ts +0 -17
  25. package/dist/rules/use-exhaustive-dependencies.js +26 -108
  26. package/dist/rules/use-exhaustive-dependencies.js.map +1 -1
  27. package/dist/rules/use-hook-at-top-level.js +17 -118
  28. package/dist/rules/use-hook-at-top-level.js.map +1 -1
  29. package/package.json +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-paired-calls.js","sourceRoot":"","sources":["../../src/rules/require-paired-calls.ts"],"names":[],"mappings":"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"}
@@ -41,27 +41,27 @@ function ascendPastWrappers(node) {
41
41
  }
42
42
  function hasKeyAttribute(node) {
43
43
  for (const attribute of node.openingElement.attributes)
44
- if (attribute.type === "JSXAttribute" && attribute.name.name === "key")
44
+ if (attribute.type === TSESTree.AST_NODE_TYPES.JSXAttribute && attribute.name.name === "key")
45
45
  return true;
46
46
  return false;
47
47
  }
48
48
  function isReactComponentHOC(callExpr) {
49
49
  const { callee } = callExpr;
50
- if (callee.type === "Identifier")
50
+ if (callee.type === TSESTree.AST_NODE_TYPES.Identifier)
51
51
  return callee.name === "forwardRef" || callee.name === "memo";
52
- if (callee.type === "MemberExpression" &&
53
- callee.object.type === "Identifier" &&
52
+ if (callee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
53
+ callee.object.type === TSESTree.AST_NODE_TYPES.Identifier &&
54
54
  callee.object.name === "React" &&
55
- callee.property.type === "Identifier")
55
+ callee.property.type === TSESTree.AST_NODE_TYPES.Identifier)
56
56
  return callee.property.name === "forwardRef" || callee.property.name === "memo";
57
57
  return false;
58
58
  }
59
59
  function getEnclosingFunctionLike(node) {
60
60
  let current = node.parent;
61
61
  while (current) {
62
- if (current.type === "ArrowFunctionExpression" ||
63
- current.type === "FunctionExpression" ||
64
- current.type === "FunctionDeclaration")
62
+ if (current.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||
63
+ current.type === TSESTree.AST_NODE_TYPES.FunctionExpression ||
64
+ current.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration)
65
65
  return current;
66
66
  current = current.parent;
67
67
  }
@@ -69,22 +69,23 @@ function getEnclosingFunctionLike(node) {
69
69
  }
70
70
  function isIterationOrMemoCallback(callExpr, iterationMethods, memoizationHooks) {
71
71
  const { callee } = callExpr;
72
- if (callee.type === "Identifier" && memoizationHooks.has(callee.name))
72
+ if (callee.type === TSESTree.AST_NODE_TYPES.Identifier && memoizationHooks.has(callee.name))
73
73
  return true;
74
- if (callee.type === "MemberExpression" && callee.property.type === "Identifier") {
74
+ if (callee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
75
+ callee.property.type === TSESTree.AST_NODE_TYPES.Identifier) {
75
76
  const methodName = callee.property.name;
76
77
  if (iterationMethods.has(methodName))
77
78
  return true;
78
79
  if (methodName === "from" &&
79
- callee.object.type === "MemberExpression" &&
80
- callee.object.object.type === "Identifier" &&
80
+ callee.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
81
+ callee.object.object.type === TSESTree.AST_NODE_TYPES.Identifier &&
81
82
  callee.object.object.name === "Array" &&
82
83
  callExpr.arguments.length >= 2)
83
84
  return true;
84
85
  if (methodName === "call" &&
85
- callee.object.type === "MemberExpression" &&
86
- callee.object.object.type === "MemberExpression" &&
87
- callee.object.object.property.type === "Identifier" &&
86
+ callee.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
87
+ callee.object.object.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
88
+ callee.object.object.property.type === TSESTree.AST_NODE_TYPES.Identifier &&
88
89
  iterationMethods.has(callee.object.object.property.name))
89
90
  return true;
90
91
  }
@@ -94,11 +95,11 @@ function findEnclosingCallExpression(node) {
94
95
  let current = node;
95
96
  let parent = node.parent;
96
97
  while (parent) {
97
- if (parent.type === "CallExpression") {
98
+ if (parent.type === TSESTree.AST_NODE_TYPES.CallExpression) {
98
99
  for (const argument of parent.arguments) {
99
100
  if (argument === current)
100
101
  return parent;
101
- if (argument.type === "SpreadElement" && argument.argument === current)
102
+ if (argument.type === TSESTree.AST_NODE_TYPES.SpreadElement && argument.argument === current)
102
103
  return parent;
103
104
  }
104
105
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"require-react-component-keys.js","sourceRoot":"","sources":["../../src/rules/require-react-component-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAapD,MAAM,eAAe,GAA0B;IAC9C,aAAa,EAAE,KAAK;IACpB,qBAAqB,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC9D,gBAAgB,EAAE;QACjB,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,aAAa;QACb,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;KACX;IACD,gBAAgB,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;CAC5C,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACpC,yBAAyB;IACzB,gBAAgB;IAChB,uBAAuB;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,2BAA2B;IAC3B,iBAAiB;CACjB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACtC,GAAG,oBAAoB;IACvB,iBAAiB;IACjB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;CACf,CAAC,CAAC;AAQH,SAAS,kBAAkB,CAAC,IAA+B;IAC1D,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IACnF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,IAAyB;IACjD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU;QACrD,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;IAErF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiC;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;IAEhG,IACC,MAAM,CAAC,IAAI,KAAK,kBAAkB;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;QAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;QAErC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;IAEjF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAmB;IACpD,IAAI,OAAO,GAA8B,IAAI,CAAC,MAAM,CAAC;IAErD,OAAO,OAAO,EAAE,CAAC;QAChB,IACC,OAAO,CAAC,IAAI,KAAK,yBAAyB;YAC1C,OAAO,CAAC,IAAI,KAAK,oBAAoB;YACrC,OAAO,CAAC,IAAI,KAAK,qBAAqB;YAEtC,OAAO,OAAO,CAAC;QAEhB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CACjC,QAAiC,EACjC,gBAA6B,EAC7B,gBAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnF,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjF,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAExC,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,IACC,UAAU,KAAK,MAAM;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;YAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YACrC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC;YAE9B,OAAO,IAAI,CAAC;QAEb,IACC,UAAU,KAAK,MAAM;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;YACnD,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAExD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAmB;IACvD,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,OAAO,MAAM,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,QAAQ,KAAK,OAAO;oBAAE,OAAO,MAAM,CAAC;gBACxC,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO;oBAAE,OAAO,MAAM,CAAC;YACvF,CAAC;YACD,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,SAAS;QACV,CAAC;QAED,MAAM;IACP,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC9B,OAAkD,EAClD,YAA0B;IAE1B,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IACC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,kBAAkB;QAC1D,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,oBAAoB,EAC3D,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAC/B,SAAmC,EACnC,gBAA6B,EAC7B,gBAA6B;IAE7B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,cAAc,GAAG,2BAA2B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACzE,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAElC,IAAI,mBAAmB,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtD,OAAO,yBAAyB,CAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,wBAAwB,CAChC,OAAkD,EAClD,YAA0B,EAC1B,gBAA6B,EAC7B,gBAA6B;IAE7B,MAAM,UAAU,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,mBAAmB,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,OAAO,yBAAyB,CAAC,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU;QAC1C,IAAI,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;YAAE,OAAO,IAAI,CAAC;IAEzF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAA0B;IAC5D,QAAQ,CAAC,cAAc,CAAC,qBAAqB;IAC7C,QAAQ,CAAC,cAAc,CAAC,iBAAiB;CACzC,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAA0B;IAC/D,QAAQ,CAAC,cAAc,CAAC,kBAAkB;IAC1C,QAAQ,CAAC,cAAc,CAAC,uBAAuB;CAC/C,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,IAAgD;IACzE,IAAI,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,sBAAsB;QAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/G,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OAAO,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,sBAAsB;QAAE,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/G,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QAC7D,IAAI,WAAW,GAA8B,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,cAAc;YAC/D,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,cAAc,EAAE,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,cAAc;gBAClE,OAAO,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;QACrE,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,cAAc,EAAE,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,cAAc;YAAE,OAAO,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC/B,IAAgD,EAChD,UAAiC;IAEjC,IAAI,MAAM,GAA8B,IAAI,CAAC,MAAM,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC;QACpE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,IAAI,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;YACrD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU;gBAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEhG,IACC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,gBAAgB;gBACxD,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU;gBACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU;gBAE3D,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7E,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAgD;IACvE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OACC,MAAM;QACN,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,qBAAqB;YAC7D,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;QAE3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAExB,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC;QACpE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;AAC7D,CAAC;AAED,MAAM,IAAI,GAA4B;IACrC,WAAW,EAAE,kEAAkE;IAC/E,WAAW,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,yBAAyB,GAAkF;IAChH,MAAM,CAAC,OAAO;QACb,MAAM,OAAO,GAA0B;YACtC,GAAG,eAAe;YAClB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACrB,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE3D,SAAS,YAAY,CAAC,IAAgD;YACrE,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,YAAY;gBAC9B,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;gBACrF,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3B,IACC,CAAC,OAAO,CAAC,aAAa;oBACtB,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU;oBAChD,eAAe,CAAC,IAAI,CAAC,EACpB,CAAC;oBACF,OAAO,CAAC,MAAM,CAAC;wBACd,SAAS,EAAE,sBAAsB;wBACjC,IAAI;qBACJ,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO;YACR,CAAC;YAED,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;gBAAE,OAAO;YACzE,IAAI,cAAc,CAAC,IAAI,CAAC;gBAAE,OAAO;YAEjC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;gBACvD,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,YAAY;oBACvB,IAAI;iBACJ,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,YAAY;oBACvB,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO;YACN,UAAU,CAAC,IAAI;gBACd,YAAY,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YAED,WAAW,CAAC,IAAI;gBACf,YAAY,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;SACD,CAAC;IACH,CAAC;IACD,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,IAAI,EAAE;QACL,IAAI;QACJ,QAAQ,EAAE;YACT,UAAU,EAAE,gEAAgE;YAC5E,oBAAoB,EAAE,kDAAkD;SACxE;QACD,MAAM,EAAE;YACP;gBACC,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACX,aAAa,EAAE;wBACd,OAAO,EAAE,KAAK;wBACd,WAAW,EAAE,2CAA2C;wBACxD,IAAI,EAAE,SAAS;qBACf;oBACD,qBAAqB,EAAE;wBACtB,OAAO,EAAE,CAAC,iBAAiB,CAAC;wBAC5B,WAAW,EAAE,oDAAoD;wBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,IAAI,EAAE,OAAO;qBACb;oBACD,gBAAgB,EAAE;wBACjB,OAAO,EAAE;4BACR,KAAK;4BACL,QAAQ;4BACR,SAAS;4BACT,SAAS;4BACT,QAAQ;4BACR,aAAa;4BACb,MAAM;4BACN,OAAO;4BACP,MAAM;4BACN,WAAW;yBACX;wBACD,WAAW,EAAE,6EAA6E;wBAC1F,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,IAAI,EAAE,OAAO;qBACb;oBACD,gBAAgB,EAAE;wBACjB,OAAO,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;wBACnC,WAAW,EAAE,uEAAuE;wBACpF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,IAAI,EAAE,OAAO;qBACb;iBACD;gBACD,IAAI,EAAE,QAAQ;aACd;SACD;QACD,IAAI,EAAE,SAAS;KACf;CACD,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"require-react-component-keys.js","sourceRoot":"","sources":["../../src/rules/require-react-component-keys.ts"],"names":[],"mappings":"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"}
@@ -18,24 +18,7 @@ interface CaptureInfo {
18
18
  }
19
19
  declare function isStableArrayIndex(stableResult: StableResult | undefined, node: Scope.Definition["node"], identifierName: string): boolean;
20
20
  declare function isStableValue(variable: VariableLike | undefined, identifierName: string, stableHooks: Map<string, StableResult>): boolean;
21
- /**
22
- * Checks if an identifier is in a TypeScript type-only position.
23
- * Type parameters and type annotations are compile-time only and should not be dependencies.
24
- *
25
- * @param identifier - The identifier node to check.
26
- * @returns True if the identifier is in a type-only position.
27
- */
28
21
  declare function isInTypePosition(identifier: TSESTree.Identifier): boolean;
29
- /**
30
- * Checks if a variable is declared directly in the component/hook body OR is a prop (parameter).
31
- * Per React rules, only variables "declared directly inside the component body" are reactive.
32
- * This includes props (function parameters).
33
- * Variables from outer scopes (module-level, parent functions) are non-reactive.
34
- *
35
- * @param variable - The variable to check.
36
- * @param closureNode - The closure node (useEffect callback, etc.).
37
- * @returns True if the variable is declared in the component body or is a prop.
38
- */
39
22
  declare function isDeclaredInComponentBody(variable: VariableLike, closureNode: TSESTree.Node): boolean;
40
23
  declare function collectCaptures(node: TSESTree.Node, scope: Scope.Scope, sourceCode: Rule.RuleContext["sourceCode"]): ReadonlyArray<CaptureInfo>;
41
24
  declare function convertStableResult(stableResult: boolean | number | ReadonlyArray<number> | ReadonlyArray<string>): StableResult;
@@ -97,12 +97,11 @@ const GLOBAL_BUILTINS = new Set([
97
97
  ]);
98
98
  function getHookName(node) {
99
99
  const { callee } = node;
100
- if (callee.type === "Identifier") {
100
+ if (callee.type === TSESTree.AST_NODE_TYPES.Identifier)
101
101
  return callee.name;
102
- }
103
- if (callee.type === "MemberExpression" && callee.property.type === "Identifier") {
102
+ if (callee.type === TSESTree.AST_NODE_TYPES.MemberExpression &&
103
+ callee.property.type === TSESTree.AST_NODE_TYPES.Identifier)
104
104
  return callee.property.name;
105
- }
106
105
  return undefined;
107
106
  }
108
107
  function getMemberExpressionDepth(node) {
@@ -131,10 +130,11 @@ function isStableArrayIndex(stableResult, node, identifierName) {
131
130
  node.id.type !== TSESTree.AST_NODE_TYPES.ArrayPattern)
132
131
  return false;
133
132
  const elements = node.id.elements;
134
- for (let index = 0; index < elements.length; index += 1) {
135
- const element = elements[index];
136
- if (element?.type === TSESTree.AST_NODE_TYPES.Identifier && element.name === identifierName)
133
+ let index = 0;
134
+ for (const element of elements) {
135
+ if (element.type === TSESTree.AST_NODE_TYPES.Identifier && element.name === identifierName)
137
136
  return stableResult.has(index);
137
+ index += 1;
138
138
  }
139
139
  return false;
140
140
  }
@@ -150,7 +150,6 @@ function isStableHookValue(init, node, identifierName, stableHooks) {
150
150
  return true;
151
151
  return isStableArrayIndex(stableResult, node, identifierName);
152
152
  }
153
- /* eslint-disable jsdoc/require-param, jsdoc/require-returns */
154
153
  function isStableValue(variable, identifierName, stableHooks) {
155
154
  if (!variable)
156
155
  return false;
@@ -161,12 +160,11 @@ function isStableValue(variable, identifierName, stableHooks) {
161
160
  const { node, type } = definition;
162
161
  if (STABLE_VALUE_TYPES.has(type))
163
162
  return true;
164
- if (type === "Variable" && node.type === "VariableDeclarator") {
163
+ if (type === "Variable" && node.type === TSESTree.AST_NODE_TYPES.VariableDeclarator) {
165
164
  const parent = node.parent;
166
165
  if (!parent || parent.type !== TSESTree.AST_NODE_TYPES.VariableDeclaration || parent.kind !== "const")
167
166
  continue;
168
- const { init } = node;
169
- // @ts-expect-error - Type mismatch between ESLint and TypeScript AST types
167
+ const init = node.init;
170
168
  if (init && isStableHookValue(init, node, identifierName, stableHooks))
171
169
  return true;
172
170
  if (init?.type === TSESTree.AST_NODE_TYPES.CallExpression) {
@@ -204,16 +202,9 @@ function isStableValue(variable, identifierName, stableHooks) {
204
202
  }
205
203
  return false;
206
204
  }
207
- /**
208
- * Finds the topmost member expression in a chain when an identifier is the object.
209
- *
210
- * @param node - The identifier node.
211
- * @returns The topmost member expression or the node itself.
212
- */
213
205
  function findTopmostMemberExpression(node) {
214
206
  let current = node;
215
207
  let { parent } = node;
216
- // Walk up the tree while we're the object of a member expression
217
208
  while (parent?.type === TSESTree.AST_NODE_TYPES.MemberExpression && parent.object === current) {
218
209
  current = parent;
219
210
  parent = parent.parent;
@@ -226,55 +217,30 @@ const IS_CEASE_BOUNDARY = new Set([
226
217
  TSESTree.AST_NODE_TYPES.ArrowFunctionExpression,
227
218
  TSESTree.AST_NODE_TYPES.VariableDeclarator,
228
219
  ]);
229
- /**
230
- * Checks if an identifier is in a TypeScript type-only position.
231
- * Type parameters and type annotations are compile-time only and should not be dependencies.
232
- *
233
- * @param identifier - The identifier node to check.
234
- * @returns True if the identifier is in a type-only position.
235
- */
236
220
  function isInTypePosition(identifier) {
237
221
  let parent = identifier.parent;
238
222
  while (parent) {
239
- // Any TypeScript-specific node indicates a type-only position
240
223
  if (parent.type.startsWith("TS"))
241
224
  return true;
242
- // Stop searching at certain boundaries
243
225
  if (IS_CEASE_BOUNDARY.has(parent.type))
244
226
  return false;
245
227
  parent = parent.parent;
246
228
  }
247
229
  return false;
248
230
  }
249
- /**
250
- * Checks if a variable is declared directly in the component/hook body OR is a prop (parameter).
251
- * Per React rules, only variables "declared directly inside the component body" are reactive.
252
- * This includes props (function parameters).
253
- * Variables from outer scopes (module-level, parent functions) are non-reactive.
254
- *
255
- * @param variable - The variable to check.
256
- * @param closureNode - The closure node (useEffect callback, etc.).
257
- * @returns True if the variable is declared in the component body or is a prop.
258
- */
259
231
  function isDeclaredInComponentBody(variable, closureNode) {
260
- // Find the parent component/hook function
261
232
  let parent = closureNode.parent;
262
233
  while (parent) {
263
234
  const isFunction = FUNCTION_DECLARATIONS.has(parent.type);
264
235
  if (isFunction) {
265
- // Capture parent in a const so TypeScript understands it's stable in closures
266
236
  const functionParent = parent;
267
- // Check if variable is a parameter of this function (props)
268
237
  const isParameter = variable.defs.some((definition) => {
269
238
  if (definition.type !== "Parameter")
270
239
  return false;
271
- // For parameters, the def.node is the function itself
272
- // Just check if the definition's node is the current function parent
273
240
  return definition.node === functionParent;
274
241
  });
275
242
  if (isParameter)
276
- return true; // Props are reactive
277
- // Check if variable is defined inside this function
243
+ return true;
278
244
  return variable.defs.some((definition) => {
279
245
  let node = definition.node.parent;
280
246
  while (node && node !== functionParent)
@@ -286,15 +252,7 @@ function isDeclaredInComponentBody(variable, closureNode) {
286
252
  }
287
253
  return false;
288
254
  }
289
- /**
290
- * Resolves an identifier to its function definition if it references a function.
291
- *
292
- * @param identifier - The identifier node.
293
- * @param scope - The scope to search in.
294
- * @returns The function node if found, undefined otherwise.
295
- */
296
255
  function resolveFunctionReference(identifier, scope) {
297
- // Look up the variable in the scope chain
298
256
  let variable;
299
257
  let currentScope = scope;
300
258
  while (currentScope) {
@@ -305,13 +263,10 @@ function resolveFunctionReference(identifier, scope) {
305
263
  }
306
264
  if (!variable || variable.defs.length === 0)
307
265
  return undefined;
308
- // Check all definitions for a function
309
266
  for (const definition of variable.defs) {
310
267
  const { node } = definition;
311
- // Direct function declaration
312
268
  if (node.type === TSESTree.AST_NODE_TYPES.FunctionDeclaration)
313
269
  return node;
314
- // Variable declarator with function initializer
315
270
  if (node.type === TSESTree.AST_NODE_TYPES.VariableDeclarator &&
316
271
  node.init &&
317
272
  (node.init.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||
@@ -407,6 +362,9 @@ function parseDependencies(node, sourceCode) {
407
362
  }
408
363
  return dependencies;
409
364
  }
365
+ function returnName({ name }) {
366
+ return name;
367
+ }
410
368
  function isUnstableValue(node) {
411
369
  return node ? UNSTABLE_VALUES.has(node.type) : false;
412
370
  }
@@ -431,7 +389,6 @@ const useExhaustiveDependencies = {
431
389
  reportUnnecessaryDependencies: true,
432
390
  ...context.options[0],
433
391
  };
434
- // Build hook configuration map
435
392
  const hookConfigs = new Map(DEFAULT_HOOKS);
436
393
  for (const customHook of options.hooks) {
437
394
  if (customHook.closureIndex === undefined || customHook.dependenciesIndex === undefined)
@@ -441,21 +398,13 @@ const useExhaustiveDependencies = {
441
398
  dependenciesIndex: customHook.dependenciesIndex,
442
399
  });
443
400
  }
444
- // Build stable hooks map
445
401
  const stableHooks = new Map(STABLE_HOOKS);
446
402
  for (const customHook of options.hooks) {
447
403
  if (customHook.stableResult === undefined)
448
404
  continue;
449
405
  stableHooks.set(customHook.name, convertStableResult(customHook.stableResult));
450
406
  }
451
- // Performance: cache scope lookups
452
407
  const scopeCache = new WeakMap();
453
- /**
454
- * Gets the scope for a node with caching.
455
- *
456
- * @param node - The node to get scope for.
457
- * @returns The scope.
458
- */
459
408
  function getScope(node) {
460
409
  const cached = scopeCache.get(node);
461
410
  if (cached)
@@ -467,59 +416,49 @@ const useExhaustiveDependencies = {
467
416
  return {
468
417
  CallExpression(node) {
469
418
  const callNode = node;
470
- // Early exit: get hook name
471
419
  const hookName = getHookName(callNode);
472
420
  if (hookName === undefined || hookName === "")
473
421
  return;
474
- // Early exit: check if this hook needs dependency checking
475
422
  const hookConfig = hookConfigs.get(hookName);
476
423
  if (!hookConfig)
477
424
  return;
478
425
  const { closureIndex, dependenciesIndex } = hookConfig;
479
426
  const parameters = callNode.arguments;
480
- // Early exit: check if closure argument exists
481
427
  const closureArgument = parameters[closureIndex];
482
428
  if (closureArgument === undefined)
483
429
  return;
484
- // Resolve the actual closure function (handles both inline and reference cases)
485
430
  let closureFunction;
486
431
  if (closureArgument.type === TSESTree.AST_NODE_TYPES.ArrowFunctionExpression ||
487
432
  closureArgument.type === TSESTree.AST_NODE_TYPES.FunctionExpression)
488
433
  closureFunction = closureArgument;
489
434
  else if (closureArgument.type === TSESTree.AST_NODE_TYPES.Identifier) {
490
- // Function reference - try to resolve it
491
435
  const scope = getScope(callNode);
492
436
  closureFunction = resolveFunctionReference(closureArgument, scope);
493
437
  }
494
- // Early exit: check if we have a valid closure function
495
438
  if (!closureFunction)
496
439
  return;
497
- // Get dependencies argument
498
440
  const dependenciesArgument = parameters[dependenciesIndex];
499
- // Report missing dependencies array if configured
500
441
  if (!dependenciesArgument && options.reportMissingDependenciesArray) {
501
- // Collect captures to see if any are needed
502
442
  const scope = getScope(closureFunction);
503
443
  const captures = collectCaptures(closureFunction, scope, context.sourceCode);
504
- // Filter out stable values
505
444
  const requiredCaptures = captures.filter((capture) => !isStableValue(capture.variable, capture.name, stableHooks));
506
445
  if (requiredCaptures.length > 0) {
507
- const missingNames = Array.from(new Set(requiredCaptures.map(({ name }) => name))).join(", ");
508
- // Generate fix suggestion - add dependencies array
446
+ // oxlint-disable-next-line no-array-callback-reference
447
+ const missingNames = Array.from(new Set(requiredCaptures.map(returnName))).join(", ");
509
448
  const usagePaths = requiredCaptures.map(({ usagePath }) => usagePath);
510
- const uniqueDeps = Array.from(new Set(usagePaths)).toSorted();
511
- const depsArrayString = `[${uniqueDeps.join(", ")}]`;
449
+ const uniqueDependencies = Array.from(new Set(usagePaths)).toSorted();
450
+ const dependenciesString = `[${uniqueDependencies.join(", ")}]`;
512
451
  context.report({
513
452
  data: { deps: missingNames },
514
453
  messageId: "missingDependenciesArray",
515
454
  node: callNode,
516
455
  suggest: [
517
456
  {
518
- desc: `Add dependencies array: ${depsArrayString}`,
457
+ desc: `Add dependencies array: ${dependenciesString}`,
519
458
  fix(fixer) {
520
- // Insert the dependencies array after the closure argument
459
+ //
521
460
  const closureArgumentNode = parameters[closureIndex];
522
- return fixer.insertTextAfter(closureArgumentNode, `, ${depsArrayString}`);
461
+ return fixer.insertTextAfter(closureArgumentNode, `, ${dependenciesString}`);
523
462
  },
524
463
  },
525
464
  ],
@@ -527,33 +466,26 @@ const useExhaustiveDependencies = {
527
466
  }
528
467
  return;
529
468
  }
530
- // Early exit: no dependencies array
531
469
  if (!dependenciesArgument)
532
470
  return;
533
- // Dependencies must be an array
534
471
  if (dependenciesArgument.type !== TSESTree.AST_NODE_TYPES.ArrayExpression)
535
472
  return;
536
473
  const dependenciesArray = dependenciesArgument;
537
- // Collect captures from closure
538
474
  const scope = getScope(closureFunction);
539
475
  const captures = collectCaptures(closureFunction, scope, context.sourceCode);
540
- // Parse dependencies array
541
476
  const dependencies = parseDependencies(dependenciesArray, context.sourceCode);
542
- // Check for unnecessary dependencies first (for consistent error ordering)
543
477
  for (const dependency of dependencies) {
544
478
  const dependencyRootIdentifier = getRootIdentifier(dependency.node);
545
479
  if (!dependencyRootIdentifier)
546
480
  continue;
547
481
  const dependencyName = dependencyRootIdentifier.name;
548
- // Find all captures with the same root identifier
549
482
  const matchingCaptures = captures.filter(({ node }) => getRootIdentifier(node)?.name === dependencyName);
550
- // If no captures use this identifier at all, it's unnecessary
551
483
  if (matchingCaptures.length === 0) {
552
484
  if (options.reportUnnecessaryDependencies) {
553
- // Generate fix suggestion
554
485
  const newDependencies = dependencies
555
486
  .filter((value) => value.name !== dependency.name)
556
- .map(({ name }) => name);
487
+ // oxlint-disable-next-line no-array-callback-reference
488
+ .map(returnName);
557
489
  const dependenciesString = `[${newDependencies.join(", ")}]`;
558
490
  context.report({
559
491
  data: { name: dependency.name },
@@ -571,15 +503,13 @@ const useExhaustiveDependencies = {
571
503
  }
572
504
  continue;
573
505
  }
574
- // Check if dependency is more specific than any usage
575
- // dep.depth > all capture depths means the dep is too specific
576
506
  const maxCaptureDepth = Math.max(...matchingCaptures.map(({ depth }) => depth));
577
507
  if (dependency.depth > maxCaptureDepth && options.reportUnnecessaryDependencies) {
578
- // Generate fix suggestion
579
508
  const newDependencies = dependencies
580
509
  .filter(({ name }) => name !== dependency.name)
581
- .map(({ name }) => name);
582
- const newDependenciesString = `[${newDependencies.join(", ")}]`;
510
+ // oxlint-disable-next-line no-array-callback-reference
511
+ .map(returnName);
512
+ const dependencyString = `[${newDependencies.join(", ")}]`;
583
513
  context.report({
584
514
  data: { name: dependency.name },
585
515
  messageId: "unnecessaryDependency",
@@ -588,29 +518,24 @@ const useExhaustiveDependencies = {
588
518
  {
589
519
  desc: `Remove '${dependency.name}' from dependencies array`,
590
520
  fix(fixer) {
591
- return fixer.replaceText(dependenciesArray, newDependenciesString);
521
+ return fixer.replaceText(dependenciesArray, dependencyString);
592
522
  },
593
523
  },
594
524
  ],
595
525
  });
596
526
  }
597
527
  }
598
- // Check for missing dependencies
599
528
  const missingCaptures = new Array();
600
529
  for (const capture of captures) {
601
- // Skip stable values
602
530
  if (isStableValue(capture.variable, capture.name, stableHooks))
603
531
  continue;
604
- // Check if the capture is in the dependencies
605
532
  const rootIdentifier = getRootIdentifier(capture.node);
606
533
  if (!rootIdentifier)
607
534
  continue;
608
535
  const captureName = rootIdentifier.name;
609
536
  let isInDependencies = false;
610
- // Check if capture is covered by dependencies
611
537
  for (const dependency of dependencies) {
612
538
  const dependencyRootIdentifier = getRootIdentifier(dependency.node);
613
- // Check name match and depth: dependency should not be more specific than capture
614
539
  if (dependencyRootIdentifier?.name === captureName && dependency.depth <= capture.depth) {
615
540
  isInDependencies = true;
616
541
  break;
@@ -619,7 +544,6 @@ const useExhaustiveDependencies = {
619
544
  if (!isInDependencies)
620
545
  missingCaptures.push(capture);
621
546
  }
622
- // Report all missing dependencies at once
623
547
  if (missingCaptures.length > 0) {
624
548
  const dependencyNames = dependencies.map(({ name }) => name);
625
549
  const missingPaths = missingCaptures.map(({ usagePath }) => usagePath);
@@ -627,7 +551,6 @@ const useExhaustiveDependencies = {
627
551
  const newDependenciesString = `[${newDependencies.join(", ")}]`;
628
552
  const lastDependency = dependencies.at(-1);
629
553
  const firstMissing = missingCaptures.at(0);
630
- // For single missing dependency, use singular message for backward compat
631
554
  if (missingCaptures.length === 1 && firstMissing) {
632
555
  context.report({
633
556
  data: { name: firstMissing.usagePath },
@@ -644,7 +567,6 @@ const useExhaustiveDependencies = {
644
567
  });
645
568
  }
646
569
  else {
647
- // For multiple missing dependencies, use plural message
648
570
  const missingNames = missingPaths.join(", ");
649
571
  context.report({
650
572
  data: { names: missingNames },
@@ -661,17 +583,13 @@ const useExhaustiveDependencies = {
661
583
  });
662
584
  }
663
585
  }
664
- // Check for unstable dependencies in the array
665
586
  for (const capture of captures) {
666
- // Skip stable values
667
587
  if (isStableValue(capture.variable, capture.name, stableHooks))
668
588
  continue;
669
- // Check if this capture has a corresponding dependency
670
589
  const rootIdentifier = getRootIdentifier(capture.node);
671
590
  if (!rootIdentifier)
672
591
  continue;
673
592
  const captureName = rootIdentifier.name;
674
- // Find if there's a matching dependency
675
593
  for (const dependency of dependencies) {
676
594
  const dependencyRootIdentifier = getRootIdentifier(dependency.node);
677
595
  const isMatch = dependencyRootIdentifier?.name === captureName && dependency.depth === capture.depth;