@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
59 lines (58 loc) • 1.51 kB
JavaScript
const defaultCacheConfig = {
static: {
staleTime: 86400000,
gcTime: 604800000,
refetchOnWindowFocus: false,
refetchOnMount: false,
refetchOnReconnect: false
},
semiStatic: {
staleTime: 3600000,
gcTime: 86400000,
refetchOnWindowFocus: false,
refetchOnMount: false,
refetchOnReconnect: true
},
realtime: {
staleTime: 30000,
gcTime: 300000,
refetchOnWindowFocus: true,
refetchOnMount: "always",
refetchOnReconnect: true
},
userData: {
staleTime: 300000,
gcTime: 1800000,
refetchOnWindowFocus: true,
refetchOnMount: true,
refetchOnReconnect: true
}
};
function createCacheConfig(overrides = {}) {
return {
static: {
...defaultCacheConfig.static,
...overrides.static
},
semiStatic: {
...defaultCacheConfig.semiStatic,
...overrides.semiStatic
},
realtime: {
...defaultCacheConfig.realtime,
...overrides.realtime
},
userData: {
...defaultCacheConfig.userData,
...overrides.userData
}
};
}
function getPrefetchCacheOptions(cacheConfig, strategy) {
const config = cacheConfig[strategy];
return {
staleTime: config.staleTime,
gcTime: config.gcTime
};
}
export { createCacheConfig, defaultCacheConfig, getPrefetchCacheOptions };