From 0f1eb489eda1e8a061ca5327957688ed0ef9e011 Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Tue, 13 Jan 2026 19:49:51 +0300 Subject: [PATCH] feat: add query provider for Tanstack --- src/app/providers/QueryProvider.svelte | 17 +++++++++++++++++ src/shared/api/queryClient.ts | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/app/providers/QueryProvider.svelte create mode 100644 src/shared/api/queryClient.ts diff --git a/src/app/providers/QueryProvider.svelte b/src/app/providers/QueryProvider.svelte new file mode 100644 index 0000000..f9237b6 --- /dev/null +++ b/src/app/providers/QueryProvider.svelte @@ -0,0 +1,17 @@ + + + + {@render children?.()} + diff --git a/src/shared/api/queryClient.ts b/src/shared/api/queryClient.ts new file mode 100644 index 0000000..da8baf1 --- /dev/null +++ b/src/shared/api/queryClient.ts @@ -0,0 +1,26 @@ +import { QueryClient } from '@tanstack/query-core'; + +/** + * Query client instance + */ +export const queryClient = new QueryClient({ + defaultOptions: { + queries: { + /** + * Default staleTime: 5 minutes + */ + staleTime: 5 * 60 * 1000, + /** + * Default gcTime: 10 minutes + */ + gcTime: 10 * 60 * 1000, + refetchOnWindowFocus: false, + refetchOnMount: true, + retry: 3, + /** + * Exponential backoff + */ + retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000), + }, + }, +});