UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

26 lines (25 loc) • 1.06 kB
const assertNever = (value)=>{ throw new Error(`Unsupported prefetch skip mode: ${String(value)}`); }; const isQueryFresh = (queryClient, queryKey, staleTime)=>{ const state = queryClient.getQueryState(queryKey); if (!state || state.isInvalidated || void 0 === state.data) return false; return Date.now() - state.dataUpdatedAt < staleTime; }; const isQueryInFlight = (queryClient, queryKey)=>{ const state = queryClient.getQueryState(queryKey); return state?.fetchStatus === "fetching"; }; const shouldSkipPrefetch = (params)=>{ if (!params.skipIfCached) return false; if (isQueryInFlight(params.queryClient, params.queryKey)) return true; switch(params.skipMode){ case "any": return void 0 !== params.queryClient.getQueryData(params.queryKey); case "fresh": return isQueryFresh(params.queryClient, params.queryKey, params.cacheOptions.staleTime); default: return assertNever(params.skipMode); } }; export { isQueryFresh, isQueryInFlight, shouldSkipPrefetch };