@@ -104,75 +104,30 @@ export type FunctionInitPath =
104104 ] ;
105105
106106export function getFunctionInitPath ( node : TSESTreeFunction ) : FunctionInitPath | _ {
107- const { parent } = node ;
108107 if ( node . type === T . FunctionDeclaration ) {
109108 return [ node ] as const ;
110109 }
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 ;
176131 }
177132 return _ ;
178133}
0 commit comments