fcs
2025-04-10 0163870d662dc5b7d69ceff977490ede594f7d82
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);
}