import { QueryClient, QueryKey, UseMutationOptions } from "react-query" export const buildOptions = < TData, TError, TVariables, TContext, TKey extends Array >( queryClient: QueryClient, queryKey: TKey[] | TKey, options?: UseMutationOptions ): UseMutationOptions => { return { ...options, onSuccess: (...args) => { if (options?.onSuccess) { return options.onSuccess(...args) } if (queryKey.filter(Array.isArray).length > 0) { queryKey.forEach(key => queryClient.invalidateQueries(key)) } else { queryClient.invalidateQueries(queryKey) } }, } }