source: trip-planner-front/node_modules/@babel/types/lib/validators/isReferenced.js@ fa375fe

Last change on this file since fa375fe was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.5 KB
RevLine 
[6a3a178]1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = isReferenced;
7
8function isReferenced(node, parent, grandparent) {
9 switch (parent.type) {
10 case "MemberExpression":
11 case "OptionalMemberExpression":
12 if (parent.property === node) {
13 return !!parent.computed;
14 }
15
16 return parent.object === node;
17
18 case "JSXMemberExpression":
19 return parent.object === node;
20
21 case "VariableDeclarator":
22 return parent.init === node;
23
24 case "ArrowFunctionExpression":
25 return parent.body === node;
26
27 case "PrivateName":
28 return false;
29
30 case "ClassMethod":
31 case "ClassPrivateMethod":
32 case "ObjectMethod":
33 if (parent.key === node) {
34 return !!parent.computed;
35 }
36
37 return false;
38
39 case "ObjectProperty":
40 if (parent.key === node) {
41 return !!parent.computed;
42 }
43
44 return !grandparent || grandparent.type !== "ObjectPattern";
45
46 case "ClassProperty":
47 if (parent.key === node) {
48 return !!parent.computed;
49 }
50
51 return true;
52
53 case "ClassPrivateProperty":
54 return parent.key !== node;
55
56 case "ClassDeclaration":
57 case "ClassExpression":
58 return parent.superClass === node;
59
60 case "AssignmentExpression":
61 return parent.right === node;
62
63 case "AssignmentPattern":
64 return parent.right === node;
65
66 case "LabeledStatement":
67 return false;
68
69 case "CatchClause":
70 return false;
71
72 case "RestElement":
73 return false;
74
75 case "BreakStatement":
76 case "ContinueStatement":
77 return false;
78
79 case "FunctionDeclaration":
80 case "FunctionExpression":
81 return false;
82
83 case "ExportNamespaceSpecifier":
84 case "ExportDefaultSpecifier":
85 return false;
86
87 case "ExportSpecifier":
88 if (grandparent != null && grandparent.source) {
89 return false;
90 }
91
92 return parent.local === node;
93
94 case "ImportDefaultSpecifier":
95 case "ImportNamespaceSpecifier":
96 case "ImportSpecifier":
97 return false;
98
99 case "ImportAttribute":
100 return false;
101
102 case "JSXAttribute":
103 return false;
104
105 case "ObjectPattern":
106 case "ArrayPattern":
107 return false;
108
109 case "MetaProperty":
110 return false;
111
112 case "ObjectTypeProperty":
113 return parent.key !== node;
114
115 case "TSEnumMember":
116 return parent.id !== node;
117
118 case "TSPropertySignature":
119 if (parent.key === node) {
120 return !!parent.computed;
121 }
122
123 return true;
124 }
125
126 return true;
127}
Note: See TracBrowser for help on using the repository browser.