UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

35 lines • 2.93 kB
import { type CacheConfig, type CacheStrategy } from "../shared/cache-config"; import type { QueryFactoryOptions, ReadQueryOptions } from "../shared/hook-types"; import type { QueryNamespace } from "../shared/query-keys"; import type { ProductListCartLike, ProductListDetailInputBase, ProductListListInputBase, ProductListListResult, ProductListQueryKeys, ProductListService } from "./types"; export type CreateProductListQueryOptionsFactoryConfig<TProductList, TProductListItem, TCart extends ProductListCartLike, TListInput extends ProductListListInputBase, TListParams, TDetailInput extends ProductListDetailInputBase, TDetailParams, TListKeyParams = TListParams & { customerId?: string | null; }, TDetailKeyParams = TDetailParams & { customerId?: string | null; }> = { service: ProductListService<TProductList, TProductListItem, TCart, TListParams, TDetailParams>; buildListParams?: (input: TListInput) => TListParams; buildDetailParams?: (input: TDetailInput) => TDetailParams; buildListKeyParams?: (input: TListInput, params: TListParams) => TListKeyParams; buildDetailKeyParams?: (input: TDetailInput, params: TDetailParams) => TDetailKeyParams; queryKeys?: ProductListQueryKeys<TListKeyParams, TDetailKeyParams>; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; defaultPageSize?: number; }; export type ProductListQueryOptionsFactory<TProductList, TListInput extends ProductListListInputBase, TDetailInput extends ProductListDetailInputBase> = { getListQueryOptions: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<ProductListListResult<TProductList>>; cacheStrategy?: CacheStrategy; }) => QueryFactoryOptions<ProductListListResult<TProductList>>; getDetailQueryOptions: (input: TDetailInput, options?: { queryOptions?: ReadQueryOptions<TProductList | null>; cacheStrategy?: CacheStrategy; }) => QueryFactoryOptions<TProductList | null>; }; export declare function createProductListQueryOptionsFactory<TProductList, TProductListItem, TCart extends ProductListCartLike, TListInput extends ProductListListInputBase, TListParams = Omit<TListInput, "enabled" | "customerId" | "page">, TDetailInput extends ProductListDetailInputBase = ProductListDetailInputBase, TDetailParams = Omit<TDetailInput, "enabled" | "customerId">, TListKeyParams = TListParams & { customerId?: string | null; }, TDetailKeyParams = TDetailParams & { customerId?: string | null; }>({ service, buildListParams, buildDetailParams, buildListKeyParams, buildDetailKeyParams, queryKeys, queryKeyNamespace, cacheConfig, defaultPageSize, }: CreateProductListQueryOptionsFactoryConfig<TProductList, TProductListItem, TCart, TListInput, TListParams, TDetailInput, TDetailParams, TListKeyParams, TDetailKeyParams>): ProductListQueryOptionsFactory<TProductList, TListInput, TDetailInput>; //# sourceMappingURL=query-options.d.ts.map