UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

40 lines • 2.31 kB
import type { ProductDetailInputBase, ProductListInputBase, ProductQueryKeys, ProductService, RegionInfo } from "./types"; type ProductQueryInput = RegionInfo & { enabled?: boolean; }; export declare const resolveProductQueryInput: <TInput extends ProductQueryInput>(input: TInput, region?: RegionInfo | null) => TInput; type ProductListQueryDefinitionConfig<TProduct, TListInput extends ProductListInputBase, TListParams, TDetailParams> = { input: TListInput; region?: RegionInfo | null; service: ProductService<TProduct, TListParams, TDetailParams>; buildListParams: (input: TListInput) => TListParams; queryKeys: ProductQueryKeys<TListParams, TDetailParams>; useGlobalFetcher?: boolean; transformInput?: (input: TListInput) => TListInput; }; export declare const createProductListQueryDefinition: <TProduct, TListInput extends ProductListInputBase, TListParams, TDetailParams>({ input, region, service, buildListParams, queryKeys, useGlobalFetcher, transformInput, }: ProductListQueryDefinitionConfig<TProduct, TListInput, TListParams, TDetailParams>) => { resolvedInput: TListInput; listParams: TListParams; useGlobalFetcher: boolean; queryKey: import("../shared/query-keys").QueryKey; queryFn: ({ signal }: { signal?: AbortSignal; }) => Promise<import("./types").ProductListResponse<TProduct>>; }; type ProductDetailQueryDefinitionConfig<TProduct, TListParams, TDetailInput extends ProductDetailInputBase, TDetailParams> = { input: TDetailInput; region?: RegionInfo | null; service: ProductService<TProduct, TListParams, TDetailParams>; buildDetailParams: (input: TDetailInput) => TDetailParams; queryKeys: ProductQueryKeys<TListParams, TDetailParams>; }; export declare const createProductDetailQueryDefinition: <TProduct, TListParams, TDetailInput extends ProductDetailInputBase, TDetailParams>({ input, region, service, buildDetailParams, queryKeys, }: ProductDetailQueryDefinitionConfig<TProduct, TListParams, TDetailInput, TDetailParams>) => { resolvedInput: TDetailInput; detailParams: TDetailParams; queryKey: import("../shared/query-keys").QueryKey; queryFn: ({ signal }: { signal?: AbortSignal; }) => Promise<TProduct | null>; }; export {}; //# sourceMappingURL=query-definition.d.ts.map