@@ -5,26 +5,31 @@ import javascript
5
5
*/
6
6
module TypeOrm {
7
7
/**
8
- * Gets an expression that constructs or returns a TypeORM database instance.
8
+ * Gets a `DataSource` instance
9
9
*/
10
10
API:: Node dataSource ( ) {
11
11
result = API:: moduleImport ( "typeorm" ) .getMember ( "DataSource" ) .getInstance ( )
12
12
}
13
13
14
14
/**
15
- * Gets an `QueryRunner`
15
+ * Gets a `QueryRunner` nodes
16
16
*/
17
17
API:: Node queryRunner ( ) { result = dataSource ( ) .getMember ( "createQueryRunner" ) .getReturn ( ) }
18
18
19
19
/**
20
- * Gets `createQueryBuilder` return value from a Active record based Entity
20
+ * Gets a `*QueryBuilder` node of an Active record based Entity
21
21
*/
22
22
API:: Node activeRecordQueryBuilder ( ) {
23
- result = queryRunner ( ) .getMember ( "manager" ) .getMember ( "createQueryBuilder" ) .getReceiver ( )
23
+ result =
24
+ API:: moduleImport ( "typeorm" )
25
+ .getMember ( "Entity" )
26
+ .getReturn ( )
27
+ .getADecoratedClass ( )
28
+ .getMember ( "createQueryBuilder" )
24
29
}
25
30
26
31
/**
27
- * Gets `createQueryBuilder` return value from a Data Mapper based Entity
32
+ * Gets a `*QueryBuilder` node of a Data Mapper based Entity
28
33
*/
29
34
API:: Node dataMapperQueryBuilder ( ) {
30
35
result =
@@ -36,10 +41,19 @@ module TypeOrm {
36
41
// Using entity manager
37
42
dataSource ( ) .getMember ( "manager" ) , queryRunner ( ) .getMember ( "manager" )
38
43
] .getMember ( "createQueryBuilder" ) .getReturn ( )
44
+ or
45
+ // in case of custom query builders
46
+ result =
47
+ API:: moduleImport ( "typeorm" )
48
+ .getMember ( [
49
+ "SelectQueryBuilder" , "InsertQueryBuilder" , "RelationQueryBuilder" ,
50
+ "UpdateQueryBuilder"
51
+ ] )
52
+ .getInstance ( )
39
53
}
40
54
41
55
/**
42
- * Gets return value of a `createQueryBuilder`
56
+ * Gets a `*QueryBuilder` node
43
57
*/
44
58
API:: Node queryBuilderInstance ( ) {
45
59
result = dataMapperQueryBuilder ( ) or
@@ -91,8 +105,8 @@ module TypeOrm {
91
105
string selectExpression ( ) {
92
106
result =
93
107
[
94
- "select" , "addSelect" , "from" , " where", "andWhere" , "orWhere" , "having" , "orHaving" ,
95
- "andHaving" , " orderBy", "addOrderBy" , "distinctOn" , "groupBy" , "addCommonTableExpression" ,
108
+ "select" , "addSelect" , "where" , "andWhere" , "orWhere" , "having" , "orHaving" , "andHaving ",
109
+ "orderBy" , "addOrderBy" , "distinctOn" , "groupBy" , "addCommonTableExpression" ,
96
110
"leftJoinAndSelect" , "innerJoinAndSelect" , "leftJoin" , "innerJoin" , "leftJoinAndMapOne" ,
97
111
"innerJoinAndMapOne" , "leftJoinAndMapMany" , "innerJoinAndMapMany" , "orUpdate" , "orIgnore" ,
98
112
"values" , "set"
@@ -116,8 +130,8 @@ module TypeOrm {
116
130
typeOrmNode = getASuccessorOfBuilderInstance ( ) and
117
131
this = typeOrmNode .asSource ( )
118
132
or
119
- // I'm doing following because this = TypeORMNode.asSource()s
120
- // won 't let me to get a member in getAQueryArgument
133
+ // I'm doing following because ` this = TypeORMNode.asSource()`
134
+ // don 't let me to get a member in getAQueryArgument
121
135
typeOrmNode = getASuccessorOfBrackets ( ) and
122
136
typeOrmNode .getMember ( selectExpression ( ) ) .getACall ( ) = this
123
137
}
@@ -137,7 +151,7 @@ module TypeOrm {
137
151
or
138
152
memberName =
139
153
[
140
- "select" , "addSelect" , "from" , " where", "andWhere" , "orWhere" , "having" , "orHaving" ,
154
+ "select" , "addSelect" , "where" , "andWhere" , "orWhere" , "having" , "orHaving" ,
141
155
"andHaving" , "orderBy" , "addOrderBy" , "distinctOn" , "groupBy" ,
142
156
"addCommonTableExpression"
143
157
] and
@@ -167,8 +181,8 @@ module TypeOrm {
167
181
/** An expression that is passed to the `query` function and hence interpreted as SQL. */
168
182
class QueryString extends SQL:: SqlString {
169
183
QueryString ( ) {
170
- this = any ( QueryRunner qc ) .getAQueryArgument ( ) or
171
- this = any ( QueryBuilderCall qc ) .getAQueryArgument ( )
184
+ this = any ( QueryRunner qr ) .getAQueryArgument ( ) or
185
+ this = any ( QueryBuilderCall qb ) .getAQueryArgument ( )
172
186
}
173
187
}
174
188
}
0 commit comments