significant refactor
This commit is contained in:
23
src/lib/tanstack-query/utils/ensure.ts
Normal file
23
src/lib/tanstack-query/utils/ensure.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { QueryClient, QueryKey } from "@tanstack/react-query";
|
||||
import { ServerResult } from "../types";
|
||||
|
||||
export async function ensureServerQueryData<TData>(
|
||||
queryClient: QueryClient,
|
||||
query: {
|
||||
queryKey: QueryKey;
|
||||
queryFn: () => Promise<ServerResult<TData>>;
|
||||
}
|
||||
): Promise<TData> {
|
||||
return queryClient.ensureQueryData({
|
||||
queryKey: query.queryKey,
|
||||
queryFn: async () => {
|
||||
const result = await query.queryFn();
|
||||
|
||||
if (!result.success) {
|
||||
throw new Error(result.error.userMessage);
|
||||
}
|
||||
|
||||
return result.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user