@tanstack/react-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in React
29 lines • 1.23 kB
JavaScript
// src/suspense.ts
var defaultThrowOnError = (_error, query) => query.state.data === void 0;
var ensureSuspenseTimers = (defaultedOptions) => {
if (defaultedOptions.suspense) {
const MIN_SUSPENSE_TIME_MS = 1e3;
const clamp = (value) => value === "static" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);
const originalStaleTime = defaultedOptions.staleTime;
defaultedOptions.staleTime = typeof originalStaleTime === "function" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);
if (typeof defaultedOptions.gcTime === "number") {
defaultedOptions.gcTime = Math.max(
defaultedOptions.gcTime,
MIN_SUSPENSE_TIME_MS
);
}
}
};
var willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;
var shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;
var fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {
errorResetBoundary.clearReset();
});
export {
defaultThrowOnError,
ensureSuspenseTimers,
fetchOptimistic,
shouldSuspend,
willFetch
};
//# sourceMappingURL=suspense.js.map