File size: 952 Bytes
6d643ca | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import { QueryClient } from '@tanstack/react-query';
import { CACHE_CONFIG } from './config';
import { shouldRetry } from './errors';
export const queryClient = new QueryClient({
defaultOptions: {
queries: {
// Time in milliseconds that unused/inactive cache data remains in memory
gcTime: CACHE_CONFIG.GC_TIME,
// Time in milliseconds after data is considered stale
staleTime: CACHE_CONFIG.STALE_TIME,
// Retry failed requests using centralized logic
retry: (failureCount, error: unknown) => shouldRetry(error, failureCount),
// Refetch on window focus
refetchOnWindowFocus: false,
// Refetch on reconnect
refetchOnReconnect: true,
},
mutations: {
// Retry failed mutations using centralized logic
retry: (failureCount, error: unknown) =>
shouldRetry(error, failureCount) &&
failureCount < CACHE_CONFIG.RETRY.MAX_MUTATION_RETRIES,
},
},
});
|