Skip to content

Commit dce6450

Browse files
committed
chore(no-dynamic-slot-name): migrated custom code to ASTSearchHelper
1 parent 68b1a22 commit dce6450

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

packages/eslint-plugin-svelte/src/rules/no-dynamic-slot-name.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
getAttributeValueQuoteAndRange,
77
getStringIfConstant
88
} from '../utils/ast-utils.js';
9+
import { ASTSearchHelper } from '../utils/ast-search-helper.js';
910

1011
export default createRule('no-dynamic-slot-name', {
1112
meta: {
@@ -76,22 +77,23 @@ export default createRule('no-dynamic-slot-name', {
7677
node: TSESTree.Expression,
7778
already = new Set<TSESTree.Identifier>()
7879
): TSESTree.Expression {
79-
if (node.type !== 'Identifier' || already.has(node)) {
80-
return node;
81-
}
82-
already.add(node);
83-
const variable = findVariable(context, node);
84-
if (!variable || variable.defs.length !== 1) {
85-
return node;
86-
}
87-
const def = variable.defs[0];
88-
if (def.type === 'Variable') {
89-
if (def.parent.kind === 'const' && def.node.init) {
90-
const init = def.node.init;
91-
return findRootExpression(init, already);
92-
}
93-
}
94-
return node;
80+
return (
81+
ASTSearchHelper(node, {
82+
Identifier: (node) => {
83+
const variable = findVariable(context, node);
84+
if (
85+
variable === null ||
86+
variable.defs.length !== 1 ||
87+
variable.defs[0].type !== 'Variable' ||
88+
variable.defs[0].parent.kind !== 'const' ||
89+
variable.defs[0].node.init === null
90+
) {
91+
return node;
92+
}
93+
return findRootExpression(variable.defs[0].node.init, already);
94+
}
95+
}) ?? node
96+
);
9597
}
9698
}
9799
});

0 commit comments

Comments
 (0)