@@ -104,75 +104,30 @@ export type FunctionInitPath =
104
104
] ;
105
105
106
106
export function getFunctionInitPath ( node : TSESTreeFunction ) : FunctionInitPath | _ {
107
- const { parent } = node ;
108
107
if ( node . type === T . FunctionDeclaration ) {
109
108
return [ node ] as const ;
110
109
}
111
- if ( parent . type === T . VariableDeclarator ) {
112
- return [
113
- parent . parent ,
114
- parent ,
115
- node ,
116
- ] as const ;
117
- }
118
- if (
119
- parent . type === T . CallExpression
120
- && parent . parent . type === T . VariableDeclarator
121
- ) {
122
- return [
123
- parent . parent . parent ,
124
- parent . parent ,
125
- parent ,
126
- node ,
127
- ] as const ;
128
- }
129
- if (
130
- parent . type === T . CallExpression
131
- && parent . parent . type === T . CallExpression
132
- && parent . parent . parent . type === T . VariableDeclarator
133
- ) {
134
- return [
135
- parent . parent . parent . parent ,
136
- parent . parent . parent ,
137
- parent . parent ,
138
- parent ,
139
- node ,
140
- ] as const ;
141
- }
142
- if (
143
- parent . type === T . Property
144
- && parent . parent . type === T . ObjectExpression
145
- && parent . parent . parent . type === T . VariableDeclarator
146
- ) {
147
- return [
148
- parent . parent . parent . parent ,
149
- parent . parent . parent ,
150
- parent . parent ,
151
- parent ,
152
- node ,
153
- ] as const ;
154
- }
155
- if (
156
- parent . type === T . MethodDefinition
157
- && parent . parent . parent . type === T . ClassDeclaration
158
- ) {
159
- return [
160
- parent . parent . parent ,
161
- parent . parent ,
162
- parent ,
163
- node ,
164
- ] as const ;
165
- }
166
- if (
167
- parent . type === T . PropertyDefinition
168
- && parent . parent . parent . type === T . ClassDeclaration
169
- ) {
170
- return [
171
- parent . parent . parent ,
172
- parent . parent ,
173
- parent ,
174
- node ,
175
- ] as const ;
110
+ const { parent } = node ;
111
+ switch ( true ) {
112
+ case parent . type === T . VariableDeclarator :
113
+ return [ parent . parent , parent , node ] as const ;
114
+ case parent . type === T . CallExpression
115
+ && parent . parent . type === T . VariableDeclarator :
116
+ return [ parent . parent . parent , parent . parent , parent , node ] as const ;
117
+ case parent . type === T . CallExpression
118
+ && parent . parent . type === T . CallExpression
119
+ && parent . parent . parent . type === T . VariableDeclarator :
120
+ return [ parent . parent . parent . parent , parent . parent . parent , parent . parent , parent , node ] as const ;
121
+ case parent . type === T . Property
122
+ && parent . parent . type === T . ObjectExpression
123
+ && parent . parent . parent . type === T . VariableDeclarator :
124
+ return [ parent . parent . parent . parent , parent . parent . parent , parent . parent , parent , node ] as const ;
125
+ case parent . type === T . MethodDefinition
126
+ && parent . parent . parent . type === T . ClassDeclaration :
127
+ return [ parent . parent . parent , parent . parent , parent , node ] as const ;
128
+ case parent . type === T . PropertyDefinition
129
+ && parent . parent . parent . type === T . ClassDeclaration :
130
+ return [ parent . parent . parent , parent . parent , parent , node ] as const ;
176
131
}
177
132
return _ ;
178
133
}
0 commit comments