(hookName)
| 209 | } |
| 210 | |
| 211 | function isBuiltinHook(hookName) { |
| 212 | switch (hookName) { |
| 213 | case 'useState': |
| 214 | case 'React.useState': |
| 215 | case 'useReducer': |
| 216 | case 'React.useReducer': |
| 217 | case 'useEffect': |
| 218 | case 'React.useEffect': |
| 219 | case 'useLayoutEffect': |
| 220 | case 'React.useLayoutEffect': |
| 221 | case 'useMemo': |
| 222 | case 'React.useMemo': |
| 223 | case 'useCallback': |
| 224 | case 'React.useCallback': |
| 225 | case 'useRef': |
| 226 | case 'React.useRef': |
| 227 | case 'useContext': |
| 228 | case 'React.useContext': |
| 229 | case 'useImperativeHandle': |
| 230 | case 'React.useImperativeHandle': |
| 231 | case 'useDebugValue': |
| 232 | case 'React.useDebugValue': |
| 233 | case 'useId': |
| 234 | case 'React.useId': |
| 235 | case 'useDeferredValue': |
| 236 | case 'React.useDeferredValue': |
| 237 | case 'useTransition': |
| 238 | case 'React.useTransition': |
| 239 | case 'useInsertionEffect': |
| 240 | case 'React.useInsertionEffect': |
| 241 | case 'useSyncExternalStore': |
| 242 | case 'React.useSyncExternalStore': |
| 243 | case 'useFormStatus': |
| 244 | case 'React.useFormStatus': |
| 245 | case 'useFormState': |
| 246 | case 'React.useFormState': |
| 247 | case 'useActionState': |
| 248 | case 'React.useActionState': |
| 249 | case 'useOptimistic': |
| 250 | case 'React.useOptimistic': |
| 251 | return true; |
| 252 | default: |
| 253 | return false; |
| 254 | } |
| 255 | } |
| 256 | |
| 257 | function getHookCallsSignature(functionNode) { |
| 258 | const fnHookCalls = hookCalls.get(functionNode); |
no outgoing calls
no test coverage detected