UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

38 lines • 2.68 kB
import { type CacheConfig } from "../shared/cache-config"; import type { QueryFactoryOptions, ReadQueryOptions, SuspenseQueryOptions } from "../shared/hook-types"; import type { QueryNamespace } from "../shared/query-keys"; import type { OrderDetailInputBase, OrderListInputBase, OrderListResponse, OrderQueryKeys, OrderService, UseOrderResult, UseOrdersResult, UseSuspenseOrderResult, UseSuspenseOrdersResult } from "./types"; type SuspenseListInput<TInput extends OrderListInputBase> = Omit<TInput, "enabled">; type SuspenseDetailInput<TInput extends OrderDetailInputBase> = Omit<TInput, "enabled">; export type CreateOrderHooksConfig<TOrder, TListInput extends OrderListInputBase, TListParams, TDetailInput extends OrderDetailInputBase, TDetailParams> = { service: OrderService<TOrder, TListParams, TDetailParams>; buildListParams?: (input: TListInput) => TListParams; buildDetailParams?: (input: TDetailInput) => TDetailParams; queryKeys?: OrderQueryKeys<TListParams, TDetailParams>; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; defaultPageSize?: number; }; export type OrderHooks<TOrder, TListInput extends OrderListInputBase, TDetailInput extends OrderDetailInputBase> = { getListQueryOptions: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<OrderListResponse<TOrder>>; }) => QueryFactoryOptions<OrderListResponse<TOrder>>; getDetailQueryOptions: (input: TDetailInput, options?: { queryOptions?: ReadQueryOptions<TOrder | null>; }) => QueryFactoryOptions<TOrder | null>; useOrders: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<OrderListResponse<TOrder>>; }) => UseOrdersResult<TOrder>; useSuspenseOrders: (input: SuspenseListInput<TListInput>, options?: { queryOptions?: SuspenseQueryOptions<OrderListResponse<TOrder>>; }) => UseSuspenseOrdersResult<TOrder>; useOrder: (input: TDetailInput, options?: { queryOptions?: ReadQueryOptions<TOrder | null>; }) => UseOrderResult<TOrder>; useSuspenseOrder: (input: SuspenseDetailInput<TDetailInput>, options?: { queryOptions?: SuspenseQueryOptions<TOrder | null>; }) => UseSuspenseOrderResult<TOrder>; }; export declare function createOrderHooks<TOrder, TListInput extends OrderListInputBase, TListParams, TDetailInput extends OrderDetailInputBase, TDetailParams>({ service, buildListParams, buildDetailParams, queryKeys, queryKeyNamespace, cacheConfig, defaultPageSize, }: CreateOrderHooksConfig<TOrder, TListInput, TListParams, TDetailInput, TDetailParams>): OrderHooks<TOrder, TListInput, TDetailInput>; export {}; //# sourceMappingURL=hooks.d.ts.map