Skip to content

Commit 8bed653

Browse files
committed
JS: Update dependency injection modeling in Nest
1 parent d644f80 commit 8bed653

File tree

1 file changed

+3
-2
lines changed
  • javascript/ql/lib/semmle/javascript/frameworks

1 file changed

+3
-2
lines changed

javascript/ql/lib/semmle/javascript/frameworks/Nest.qll

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ module NestJS {
475475

476476
/** Gets the class being referenced at `node` without relying on the call graph. */
477477
private DataFlow::ClassNode getClassFromNode(DataFlow::Node node) {
478-
result.getAstNode() = node.analyze().getAValue().(AbstractClass).getClass()
478+
TypeResolution::trackClassValue(result.getAstNode()) = node.asExpr()
479479
}
480480

481481
private predicate providerClassPair(
@@ -491,7 +491,8 @@ module NestJS {
491491
private class DependencyInjectionStep extends PreCallGraphStep {
492492
override predicate classInstanceSource(DataFlow::ClassNode cls, DataFlow::Node node) {
493493
exists(DataFlow::ClassNode interfaceClass |
494-
node.asExpr().(Parameter).getType().(ClassType).getClass() = interfaceClass.getAstNode() and
494+
TypeResolution::valueHasType(node.asExpr(),
495+
TypeResolution::trackType(interfaceClass.getAstNode())) and
495496
providerClassPair(interfaceClass, cls)
496497
)
497498
}

0 commit comments

Comments
 (0)