UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

41 lines • 2.46 kB
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