Skip to content

Commit 877669f

Browse files
committed
fixup! fix(eslint-plugin): exhaustive-deps with variables and type assertions (#9643)
1 parent 48acd04 commit 877669f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

packages/eslint-plugin-query/src/rules/exhaustive-deps/exhaustive-deps.rule.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,14 @@ function getQueryFnRelevantNode(queryFn: TSESTree.Property) {
166166
}
167167

168168
function dereferenceVariablesAndTypeAssertions(queryKeyNode: TSESTree.Node, context: Readonly<TSESLint.RuleContext<string, ReadonlyArray<unknown>>>) {
169-
for (let i = 0; i < (1 << 16); ++i) {
169+
const visitedNodes = new Set<TSESTree.Node>()
170+
171+
for (let i = 0; i < (1 << 8); ++i) {
172+
if (visitedNodes.has(queryKeyNode)) {
173+
return queryKeyNode
174+
}
175+
visitedNodes.add(queryKeyNode)
176+
170177
switch (queryKeyNode.type) {
171178
case AST_NODE_TYPES.TSAsExpression:
172179
queryKeyNode = queryKeyNode.expression
@@ -187,5 +194,5 @@ function dereferenceVariablesAndTypeAssertions(queryKeyNode: TSESTree.Node, cont
187194
return queryKeyNode
188195
}
189196
}
190-
throw new Error('Recursion limit reached.')
197+
return queryKeyNode
191198
}

0 commit comments

Comments
 (0)