Fixes/request deduplication #44
Reference in New Issue
Block a user
Delete Branch "fixes/request-deduplication"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Remove duplicated requests on initial app load.
The proxy returned `{fonts: null, total: 0}` for empty results, which fetchProxyFonts surfaced as a generic Error. fontCatalogStore wrapped it as FontNetworkError, and TanStack retried 3× with exponential backoff — pinning the loading skeleton for ~7s before settling on an empty list. Schema mismatches are deterministic; retrying only delays surfacing the contract violation. - shared/api/queryClient: introduce NonRetryableError marker class. The default retry handler short-circuits when it sees this so any store using the shared client gets fail-fast behavior for free. - entities/Font/lib/errors: FontResponseError extends NonRetryableError. - entities/Font/api/proxy/proxyFonts: throw FontResponseError (was a bare Error). Document that ProxyFontsResponse.fonts is always an array. - entities/Font/.../fontCatalogStore.fetchPage: preserve a FontResponseError raised lower in the stack instead of re-wrapping it as FontNetworkError. - features/FilterAndSortFonts/api/filters: throw NonRetryableError on invalid filters payloads and document the array-never-null contract.