1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| import * as t from '@babel/types';
|
| export default function isReferenced(node: t.Node, parent: t.Node) {
| switch (parent.type) {
| // yes: { [NODE]: '' }
| // yes: { NODE }
| // no: { NODE: '' }
| case 'ObjectProperty':
| return parent.value === node || parent.computed;
|
| // no: break NODE;
| // no: continue NODE;
| case 'BreakStatement':
| case 'ContinueStatement':
| return false;
|
| // yes: left = NODE;
| // yes: NODE = right;
| case 'AssignmentExpression':
| return true;
| }
|
| return t.isReferenced(node, parent);
| }
|
|