@@ -113,17 +113,10 @@ export function isHookDefinition(node: TSESTreeFunction | null) {
113113 */
114114export function isHookCall ( node : TSESTree . Node | null ) : node is TSESTree . CallExpression {
115115 if ( node == null ) return false ;
116- if ( node . type !== AST . CallExpression ) {
117- return false ;
118- }
119- const callee = Extract . unwrap ( node . callee ) ;
120- if ( callee . type === AST . Identifier ) {
121- return isHookName ( callee . name ) ;
122- }
123- if ( callee . type === AST . MemberExpression ) {
124- return callee . property . type === AST . Identifier && isHookName ( callee . property . name ) ;
125- }
126- return false ;
116+ if ( node . type !== AST . CallExpression ) return false ;
117+ const name = Extract . getCalleeName ( node ) ;
118+ if ( name == null ) return false ;
119+ return isHookName ( name ) ;
127120}
128121
129122/**
@@ -137,19 +130,10 @@ export function isUseEffectLikeCall(
137130 additionalEffectHooks : RegExpLike = { test : constFalse } ,
138131) : node is TSESTree . CallExpression {
139132 if ( node == null ) return false ;
140- if ( node . type !== AST . CallExpression ) {
141- return false ;
142- }
143- const callee = Extract . unwrap ( node . callee ) ;
144- return [ / ^ u s e \w * E f f e c t $ / u, additionalEffectHooks ] . some ( ( regexp ) => {
145- if ( callee . type === AST . Identifier ) {
146- return regexp . test ( callee . name ) ;
147- }
148- if ( callee . type === AST . MemberExpression ) {
149- return callee . property . type === AST . Identifier && regexp . test ( callee . property . name ) ;
150- }
151- return false ;
152- } ) ;
133+ if ( node . type !== AST . CallExpression ) return false ;
134+ const name = Extract . getCalleeName ( node ) ;
135+ if ( name == null ) return false ;
136+ return / ^ u s e \w * E f f e c t $ / u. test ( name ) || additionalEffectHooks . test ( name ) ;
153137}
154138
155139/**
@@ -163,18 +147,10 @@ export function isUseStateLikeCall(
163147 additionalStateHooks : RegExpLike = { test : constFalse } ,
164148) : node is TSESTree . CallExpression {
165149 if ( node == null ) return false ;
166- if ( node . type !== AST . CallExpression ) {
167- return false ;
168- }
169- const callee = Extract . unwrap ( node . callee ) ;
170- switch ( true ) {
171- case callee . type === AST . Identifier :
172- return callee . name === "useState" || additionalStateHooks . test ( callee . name ) ;
173- case callee . type === AST . MemberExpression
174- && callee . property . type === AST . Identifier :
175- return Extract . getPropertyName ( callee . property ) === "useState" || additionalStateHooks . test ( callee . property . name ) ;
176- }
177- return false ;
150+ if ( node . type !== AST . CallExpression ) return false ;
151+ const name = Extract . getCalleeName ( node ) ;
152+ if ( name == null ) return false ;
153+ return name === "useState" || additionalStateHooks . test ( name ) ;
178154}
179155
180156// #endregion
0 commit comments