Files
flxn-app/src/lib/tanstack-query/utils/ensure.ts
yohlo 76306cc937
Some checks failed
CI/CD Pipeline / Build and Push PocketBase Docker Image (push) Has been cancelled
CI/CD Pipeline / Build and Push App Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Kubernetes (push) Has been cancelled
more auth ree
2026-03-02 22:17:05 -06:00

30 lines
739 B
TypeScript

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 () => {
try {
const result = await query.queryFn();
if (!result.success) {
throw new Error(result.error.userMessage);
}
return result.data;
} catch (error: any) {
if (error?.options?.to && error?.options?.statusCode) {
throw error;
}
throw error;
}
}
});
}