@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
29 lines • 1.67 kB
TypeScript
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