Skip to content

Commit 92d6d87

Browse files
committed
refactor: reconstruct the ExpressFrameworkAnalyzer and add checks for the Express Router type
1 parent e524e20 commit 92d6d87

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/analyzers/ExpressFrameworkAnalyzer.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ export class ExpressFrameworkAnalyzer extends FrameworkAnalyzer {
5858

5959
// 必须是Express类型 (@types/express)
6060
const objectExpression = propertyAccess.getExpression();
61-
const isExpressType = this.isExpressType(objectExpression);
62-
if (!isExpressType) {
61+
const isExpressAppType =
62+
this.isExpressAppType(objectExpression) || this.isExpressRouterType(objectExpression);
63+
if (!isExpressAppType) {
6364
return false;
6465
}
6566

@@ -103,15 +104,24 @@ export class ExpressFrameworkAnalyzer extends FrameworkAnalyzer {
103104
* @param node 要检查的节点
104105
* @returns 如果是Express类型返回true
105106
*/
106-
private isExpressType(node: Node) {
107+
private isExpressAppType(node: Node) {
107108
const nodeType = node.getType();
108109
const typeSymbol = nodeType.getSymbol();
109110

110111
// 检查是否是@types/express的 Express 类型
111-
if (nodeType.getText().includes("@types/express") && typeSymbol?.getName() === "Express") {
112-
return true;
113-
}
112+
return nodeType.getText().includes("@types/express") && typeSymbol?.getName() === "Express";
113+
}
114+
115+
/**
116+
* 检查节点是否为Express Router类型
117+
* @param node 要检查的节点
118+
* @returns 如果是Express Router类型返回true
119+
*/
120+
private isExpressRouterType(node: Node) {
121+
const nodeType = node.getType();
122+
const typeSymbol = nodeType.getSymbol();
114123

115-
return false;
124+
// 检查是否是@types/express的 Router 类型
125+
return nodeType.getText().includes("@types/express") && typeSymbol?.getName() === "Router";
116126
}
117127
}

0 commit comments

Comments
 (0)