UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

22 lines (21 loc) • 1.17 kB
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 };