import { useQuery } from 'react-query'; import { fetchUserInfo, UserBaseInfo } from '../model/user'; function buildCacheFactory( scope: string, fetcher: (id: string) => Promise ) { return (id: string): T | Record => { const { data } = useQuery([scope, id], () => fetcher(id)); return data ?? {}; }; } export const useUserInfo = buildCacheFactory( 'user', fetchUserInfo );