@@ -5,17 +5,20 @@ import { queries } from "./queries";
5
5
* await someAsyncFunc() => someAsyncFunc()
6
6
* someElement as HTMLDivElement => someElement
7
7
*
8
+ * @param {Object } context - Context for a rule
8
9
* @param {Object } expression - An expression node
9
10
* @returns {Object } - A node
10
11
*/
11
- export function getInnerNodeFrom ( expression ) {
12
+ export function getInnerNodeFrom ( context , expression ) {
12
13
switch ( expression . type ) {
14
+ case "Identifier" :
15
+ return getAssignmentForIdentifier ( context , expression . name ) ;
13
16
case "TSAsExpression" :
14
- return getInnerNodeFrom ( expression . expression ) ;
17
+ return getInnerNodeFrom ( context , expression . expression ) ;
15
18
case "AwaitExpression" :
16
- return getInnerNodeFrom ( expression . argument ) ;
19
+ return getInnerNodeFrom ( context , expression . argument ) ;
17
20
case "MemberExpression" :
18
- return getInnerNodeFrom ( expression . object ) ;
21
+ return getInnerNodeFrom ( context , expression . object ) ;
19
22
default :
20
23
return expression ;
21
24
}
@@ -37,7 +40,7 @@ export function getAssignmentForIdentifier(context, identifierName) {
37
40
let assignmentNode ;
38
41
if ( init ) {
39
42
// let foo = bar;
40
- assignmentNode = getInnerNodeFrom ( init ) ;
43
+ assignmentNode = getInnerNodeFrom ( context , init ) ;
41
44
} else {
42
45
// let foo;
43
46
// foo = bar;
@@ -47,7 +50,7 @@ export function getAssignmentForIdentifier(context, identifierName) {
47
50
if ( ! assignmentRef ) {
48
51
return ;
49
52
}
50
- assignmentNode = getInnerNodeFrom ( assignmentRef . writeExpr ) ;
53
+ assignmentNode = getInnerNodeFrom ( context , assignmentRef . writeExpr ) ;
51
54
}
52
55
return assignmentNode ;
53
56
}
@@ -61,10 +64,7 @@ export function getAssignmentForIdentifier(context, identifierName) {
61
64
* @returns {Object } - Object with query, queryArg & isDTLQuery
62
65
*/
63
66
export function getQueryNodeFrom ( context , nodeWithValueProp ) {
64
- const queryNode =
65
- nodeWithValueProp . type === "Identifier"
66
- ? getAssignmentForIdentifier ( context , nodeWithValueProp . name )
67
- : getInnerNodeFrom ( nodeWithValueProp ) ;
67
+ const queryNode = getInnerNodeFrom ( context , nodeWithValueProp ) ;
68
68
69
69
if ( ! queryNode || ! queryNode . callee ) {
70
70
return {
0 commit comments