-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.ts
33 lines (30 loc) · 890 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { AnyNode, Expression } from "acorn";
/**
* Skip event listeners
* @param node {AnyNode} - AST node
* @param ancestors {AnyNode[]} - Ancestors of the AST node
*/
export function skipEventListeners(
node: AnyNode,
ancestors: AnyNode[],
): boolean {
const parentNode = ancestors[ancestors.length - 2];
return ["addEventListener", "removeEventListener"].includes(
// @ts-expect-error TS can't identify the type properly
(parentNode as Expression)?.callee?.property?.name,
);
}
/**
* Skip local storage methods
* @param node {AnyNode} - AST node
* @param ancestors {AnyNode[]} - Ancestors of the AST node
*/
export function skipLocalStorageMethods(
node: AnyNode,
ancestors: AnyNode[],
): boolean {
return (
// @ts-expect-error TS can't identify the type properly
ancestors[ancestors.length - 2]?.callee?.object?.name === "localStorage"
);
}