60e115309c
queryClient.ts constructed the TanStack client at module eval but was not in the sideEffects allowlist, so Rollup treated the module as pure — safe only while a value-importer keeps it alive (D-3). - replace the eager `queryClient` singleton with a memoized getQueryClient() factory; construction is deferred to first call - the module is now genuinely side-effect-free, so no sideEffects exception is needed and construction can never be legally tree-shaken away - route all consumers through getQueryClient() (QueryProvider as first caller; stores via class fields/observers; tests via a local alias; the fontCatalogStore spec mock now overrides getQueryClient)
29 lines
724 B
Svelte
29 lines
724 B
Svelte
<!--
|
|
Component: QueryProvider
|
|
Provides a QueryClientProvider for child components.
|
|
|
|
All components that use useQueryClient() or createQuery() must be
|
|
descendants of this provider.
|
|
-->
|
|
<script lang="ts">
|
|
import { getQueryClient } from '$shared/api/queryClient';
|
|
import { QueryClientProvider } from '@tanstack/svelte-query';
|
|
import type { Snippet } from 'svelte';
|
|
|
|
interface Props {
|
|
/**
|
|
* Content snippet
|
|
*/
|
|
children?: Snippet;
|
|
}
|
|
|
|
let { children }: Props = $props();
|
|
|
|
// First call to the lazy singleton — constructs the shared client for the app.
|
|
const queryClient = getQueryClient();
|
|
</script>
|
|
|
|
<QueryClientProvider client={queryClient}>
|
|
{@render children?.()}
|
|
</QueryClientProvider>
|