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,
    },
  },
});