31 lines
683 B
TypeScript
31 lines
683 B
TypeScript
import { QueryClient } from '@tanstack/react-query'
|
|
import { cache } from 'react'
|
|
|
|
const getQueryClientDefaultConfig = () => ({
|
|
defaultOptions: {
|
|
queries: {
|
|
staleTime: 60 * 1000,
|
|
refetchOnWindowFocus: false,
|
|
retry: 1,
|
|
},
|
|
},
|
|
})
|
|
|
|
export function makeQueryClient() {
|
|
return new QueryClient(getQueryClientDefaultConfig());
|
|
}
|
|
|
|
export const getQueryClient = cache(() => {
|
|
|
|
if (typeof window === 'undefined') {
|
|
return new QueryClient(getQueryClientDefaultConfig())
|
|
} else {
|
|
// @ts-ignore
|
|
if (!globalThis.__APP_QUERY_CLIENT__) {
|
|
// @ts-ignore
|
|
globalThis.__APP_QUERY_CLIENT__ = makeQueryClient()
|
|
}
|
|
// @ts-ignore
|
|
return globalThis.__APP_QUERY_CLIENT__
|
|
}
|
|
}) |