UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

29 lines • 1.67 kB
import type Medusa from "@medusajs/js-sdk"; import type { HttpTypes } from "@medusajs/types"; import type { CatalogFacets, CatalogListInputBase, CatalogListResponse, CatalogService } from "./types"; type MedusaCatalogListQuery = Record<string, unknown>; export type MedusaCatalogListInput = CatalogListInputBase; export type MedusaCatalogTransformContext<TListParams extends MedusaCatalogListInput, TFacets> = { params: TListParams; query: MedusaCatalogListQuery; response: CatalogListResponse<HttpTypes.StoreProduct, TFacets>; }; export type MedusaCatalogServiceConfig<TProduct, TListParams extends MedusaCatalogListInput, TFacets> = { listPath?: string; defaultLimit?: number; defaultSort?: string; queryDefaults?: MedusaCatalogListQuery; normalizeListQuery?: (params: TListParams) => MedusaCatalogListQuery; transformProduct?: (product: HttpTypes.StoreProduct) => TProduct; transformListProduct?: (product: HttpTypes.StoreProduct, context: MedusaCatalogTransformContext<TListParams, TFacets>) => TProduct; transformFacets?: (facets: CatalogFacets) => TFacets; }; /** * Creates a CatalogService for Medusa Store API. * * Uses `/store/catalog/products` through `sdk.client.fetch` so query cancellation * works with `AbortSignal` passed by TanStack Query. */ export declare function createMedusaCatalogService<TProduct = HttpTypes.StoreProduct, TListParams extends MedusaCatalogListInput = MedusaCatalogListInput, TFacets = CatalogFacets>(sdk: Medusa, config?: MedusaCatalogServiceConfig<TProduct, TListParams, TFacets>): CatalogService<TProduct, TListParams, TFacets>; export {}; //# sourceMappingURL=medusa-service.d.ts.map