Skip to content

Commit 0a462a5

Browse files
committed
refactor: replace usages of context.getScope
1 parent 06a8374 commit 0a462a5

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/assignment-ast.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
import { queries } from "./queries";
2+
import { getScope } from './context';
23

34
/**
45
* Gets the inner relevant node (CallExpression, Identity, et al.) given a generic expression node
56
* await someAsyncFunc() => someAsyncFunc()
67
* someElement as HTMLDivElement => someElement
78
*
89
* @param {Object} context - Context for a rule
10+
* @param {Object} node - Node for a rule
911
* @param {Object} expression - An expression node
1012
* @returns {Object} - A node
1113
*/
12-
export function getInnerNodeFrom(context, expression) {
14+
export function getInnerNodeFrom(context, node, expression) {
1315
switch (expression.type) {
1416
case "Identifier":
15-
return getAssignmentForIdentifier(context, expression.name);
17+
return getAssignmentForIdentifier(context, node, expression.name);
1618
case "TSAsExpression":
17-
return getInnerNodeFrom(context, expression.expression);
19+
return getInnerNodeFrom(context, node, expression.expression);
1820
case "AwaitExpression":
19-
return getInnerNodeFrom(context, expression.argument);
21+
return getInnerNodeFrom(context, node, expression.argument);
2022
case "MemberExpression":
21-
return getInnerNodeFrom(context, expression.object);
23+
return getInnerNodeFrom(context, node, expression.object);
2224
default:
2325
return expression;
2426
}
@@ -28,19 +30,20 @@ export function getInnerNodeFrom(context, expression) {
2830
* Get the node corresponding to the latest assignment to a variable named `identifierName`
2931
*
3032
* @param {Object} context - Context for a rule
33+
* @param {Object} node - Node for a rule
3134
* @param {String} identifierName - Name of an identifier
3235
* @returns {Object} - A node, possibly undefined
3336
*/
34-
export function getAssignmentForIdentifier(context, identifierName) {
35-
const variable = context.getScope().set.get(identifierName);
37+
export function getAssignmentForIdentifier(context, node, identifierName) {
38+
const variable = getScope(context, node).set.get(identifierName);
3639

3740
if (!variable) return;
3841
const init = variable.defs[0].node.init;
3942

4043
let assignmentNode;
4144
if (init) {
4245
// let foo = bar;
43-
assignmentNode = getInnerNodeFrom(context, init);
46+
assignmentNode = getInnerNodeFrom(context, node, init);
4447
} else {
4548
// let foo;
4649
// foo = bar;
@@ -50,7 +53,7 @@ export function getAssignmentForIdentifier(context, identifierName) {
5053
if (!assignmentRef) {
5154
return;
5255
}
53-
assignmentNode = getInnerNodeFrom(context, assignmentRef.writeExpr);
56+
assignmentNode = getInnerNodeFrom(context, node, assignmentRef.writeExpr);
5457
}
5558
return assignmentNode;
5659
}
@@ -64,7 +67,7 @@ export function getAssignmentForIdentifier(context, identifierName) {
6467
* @returns {Object} - Object with query, queryArg & isDTLQuery
6568
*/
6669
export function getQueryNodeFrom(context, nodeWithValueProp) {
67-
const queryNode = getInnerNodeFrom(context, nodeWithValueProp);
70+
const queryNode = getInnerNodeFrom(context, nodeWithValueProp, nodeWithValueProp);
6871

6972
if (!queryNode || !queryNode.callee) {
7073
return {

src/rules/prefer-in-document.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ export const create = (context) => {
7979
if (matcherArguments[0].type === "Identifier") {
8080
const assignment = getAssignmentForIdentifier(
8181
context,
82+
matcherArguments[0],
8283
matcherArguments[0].name
8384
);
8485
if (!assignment) {
@@ -258,6 +259,7 @@ export const create = (context) => {
258259
) {
259260
const queryNode = getAssignmentForIdentifier(
260261
context,
262+
node,
261263
node.object.object.arguments[0].name
262264
);
263265

@@ -286,6 +288,7 @@ export const create = (context) => {
286288
// Value expression being assigned to the left-hand value
287289
const rightValueNode = getAssignmentForIdentifier(
288290
context,
291+
node,
289292
node.object.arguments[0].name
290293
);
291294

0 commit comments

Comments
 (0)