Skip to content

Commit a8aeb1d

Browse files
committed
add active record and data mapper patterns support
1 parent 522a2e2 commit a8aeb1d

File tree

1 file changed

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

1 file changed

+19
-3
lines changed

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,19 @@ module Sqlite {
66
result = API::moduleImport("typeorm").getMember("DataSource").getInstance()
77
}
88

9-
// Gets return value of a `createQueryBuilder`
10-
API::Node queryBuilderInstance() {
9+
// Gets `createQueryBuilder` return value from a Active record based Entity
10+
API::Node activeRecordQueryBuilder() {
11+
result =
12+
API::moduleImport("typeorm")
13+
.getMember("Entity")
14+
.getReturn()
15+
.getADecoratedClass()
16+
.getMember("createQueryBuilder")
17+
.getReturn()
18+
}
19+
20+
// Gets `createQueryBuilder` return value from a Data Mapper based Entity
21+
API::Node dataMapperQueryBuilder() {
1122
result =
1223
[
1324
// Using DataSource
@@ -19,7 +30,12 @@ module Sqlite {
1930
].getMember("createQueryBuilder").getReturn()
2031
}
2132

22-
//API::moduleImport("typeorm").getMember("exports").getMember("DataSource").getInstance().getMember("createQueryBuilder").getReturn().getMember("where")
33+
// Gets return value of a `createQueryBuilder`
34+
API::Node queryBuilderInstance() {
35+
result = dataMapperQueryBuilder() or
36+
result = activeRecordQueryBuilder()
37+
}
38+
2339
// Gets The Brackets that are SQL Subqueries equivalent
2440
API::Node brackets() {
2541
result =

0 commit comments

Comments
 (0)