@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
22 lines (21 loc) • 1.17 kB
JavaScript
import { createCacheConfig } from "../shared/cache-config.js";
import { createDefaultListParams } from "./input-utils.js";
import { createProductReviewQueryKeys } from "./query-keys.js";
function createProductReviewQueryOptionsFactory({ service, buildListParams, queryKeys, queryKeyNamespace = "storefront-data", cacheConfig, defaultPageSize = 20 }) {
const resolvedCacheConfig = cacheConfig ?? createCacheConfig();
const resolvedQueryKeys = queryKeys ?? createProductReviewQueryKeys(queryKeyNamespace);
const buildList = buildListParams ?? ((input)=>createDefaultListParams(input, defaultPageSize));
return {
getProductReviewsQueryOptions: (input, options)=>{
const listParams = buildList(input);
const cacheStrategy = options?.cacheStrategy ?? "semiStatic";
return {
queryKey: resolvedQueryKeys.productList(listParams),
queryFn: ({ signal })=>service.listProductReviews(listParams, signal),
...resolvedCacheConfig[cacheStrategy],
...options?.queryOptions ?? {}
};
}
};
}
export { createProductReviewQueryOptionsFactory };