@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
41 lines • 2.46 kB
TypeScript
import type Medusa from "@medusajs/js-sdk";
import type { FindParams, HttpTypes, SelectParams } from "@medusajs/types";
import type { CollectionService } from "./types";
type MedusaCollectionListQuery = FindParams & HttpTypes.StoreCollectionListParams & Record<string, unknown>;
type MedusaCollectionDetailQuery = SelectParams & Record<string, unknown>;
export type MedusaCollectionListInput = FindParams & HttpTypes.StoreCollectionListParams & {
enabled?: boolean;
};
export type MedusaCollectionDetailInput = SelectParams & {
id?: string;
enabled?: boolean;
};
export type MedusaCollectionTransformListContext<TListParams extends MedusaCollectionListInput> = {
params: TListParams;
query: MedusaCollectionListQuery;
response: HttpTypes.StoreCollectionListResponse;
};
export type MedusaCollectionTransformDetailContext<TDetailParams extends MedusaCollectionDetailInput> = {
params: TDetailParams;
query: MedusaCollectionDetailQuery;
response: HttpTypes.StoreCollectionResponse;
};
export type MedusaCollectionServiceConfig<TCollection, TListParams extends MedusaCollectionListInput, TDetailParams extends MedusaCollectionDetailInput> = {
listPath?: string;
defaultListFields?: string;
defaultDetailFields?: string;
normalizeListQuery?: (params: TListParams) => MedusaCollectionListQuery;
normalizeDetailQuery?: (params: TDetailParams) => MedusaCollectionDetailQuery;
transformCollection?: (collection: HttpTypes.StoreCollection) => TCollection;
transformListCollection?: (collection: HttpTypes.StoreCollection, context: MedusaCollectionTransformListContext<TListParams>) => TCollection;
transformDetailCollection?: (collection: HttpTypes.StoreCollection, context: MedusaCollectionTransformDetailContext<TDetailParams>) => TCollection;
};
/**
* Creates a CollectionService for Medusa Store API.
*
* Uses `/store/collections` through `sdk.client.fetch` so query cancellation
* works with `AbortSignal` passed by TanStack Query.
*/
export declare function createMedusaCollectionService<TCollection = HttpTypes.StoreCollection, TListParams extends MedusaCollectionListInput = MedusaCollectionListInput, TDetailParams extends MedusaCollectionDetailInput = MedusaCollectionDetailInput>(sdk: Medusa, config?: MedusaCollectionServiceConfig<TCollection, TListParams, TDetailParams>): CollectionService<TCollection, TListParams, TDetailParams>;
export {};
//# sourceMappingURL=medusa-service.d.ts.map