@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
38 lines • 2.68 kB
TypeScript
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