UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

53 lines • 4.24 kB
import { type QueryClient } from "@tanstack/react-query"; import type { CartQueryKeys } from "../cart/types"; import { type CacheConfig } from "../shared/cache-config"; import { type ActiveCartQueryKeyMatcher } from "../shared/cart-cache-sync"; import type { QueryNamespace } from "../shared/query-keys"; import type { CheckoutCartLike, CheckoutMutationOptions, CheckoutPaymentInputBase, CheckoutQueryKeys, CheckoutService, CheckoutShippingInputBase, ShippingOptionLike, UseCheckoutPaymentResult, UseCheckoutShippingResult } from "./types"; export type { CheckoutMutationOptions } from "./types"; export type CheckoutShippingHookInput<TCart extends CheckoutCartLike, TShippingOption extends ShippingOptionLike> = CheckoutShippingInputBase & { cart?: TCart | null; calculatePrices?: boolean; buildShippingData?: (option: TShippingOption) => Record<string, unknown>; }; export type CheckoutPaymentHookInput<TCart extends CheckoutCartLike> = CheckoutPaymentInputBase & { cart?: TCart | null; }; type CheckoutShippingSuspenseHookInput<TCart extends CheckoutCartLike, TShippingOption extends ShippingOptionLike> = Omit<CheckoutShippingHookInput<TCart, TShippingOption>, "enabled" | "cartId"> & { cartId: string; }; type CheckoutPaymentSuspenseHookInput<TCart extends CheckoutCartLike> = Omit<CheckoutPaymentHookInput<TCart>, "enabled">; export type CreateCheckoutHooksConfig<TCart extends CheckoutCartLike, TShippingOption extends ShippingOptionLike, TPaymentProvider, TPaymentCollection extends TCart["payment_collection"], TCompleteResult> = { service: CheckoutService<TCart, TShippingOption, TPaymentProvider, TPaymentCollection, TCompleteResult>; queryKeys?: CheckoutQueryKeys; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; cartQueryKeys?: CartQueryKeys; isActiveCartQueryKey?: ActiveCartQueryKeyMatcher; }; export declare function createCheckoutHooks<TCart extends CheckoutCartLike, TShippingOption extends ShippingOptionLike, TPaymentProvider, TPaymentCollection extends TCart["payment_collection"], TCompleteResult>({ service, queryKeys, queryKeyNamespace, cacheConfig, cartQueryKeys, isActiveCartQueryKey, }: CreateCheckoutHooksConfig<TCart, TShippingOption, TPaymentProvider, TPaymentCollection, TCompleteResult>): { useCheckoutShipping: <TContext = unknown>(input: CheckoutShippingHookInput<TCart, TShippingOption>, options?: CheckoutMutationOptions<TCart, { optionId: string; data?: Record<string, unknown>; }, TContext>) => UseCheckoutShippingResult<TShippingOption, TCart>; useSuspenseCheckoutShipping: <TContext = unknown>(input: CheckoutShippingSuspenseHookInput<TCart, TShippingOption>, options?: CheckoutMutationOptions<TCart, { optionId: string; data?: Record<string, unknown>; }, TContext>) => UseCheckoutShippingResult<TShippingOption, TCart>; useCheckoutPayment: <TPaymentContext = unknown>(input: CheckoutPaymentHookInput<TCart>, options?: CheckoutMutationOptions<TPaymentCollection, string, TPaymentContext>) => UseCheckoutPaymentResult<TPaymentProvider, TPaymentCollection>; useSuspenseCheckoutPayment: <TSuspensePaymentContext = unknown>(input: CheckoutPaymentSuspenseHookInput<TCart>, options?: CheckoutMutationOptions<TPaymentCollection, string, TSuspensePaymentContext>) => UseCheckoutPaymentResult<TPaymentProvider, TPaymentCollection>; getPaymentProvidersQueryOptions: (regionId: string) => { staleTime: number; gcTime: number; refetchOnWindowFocus?: boolean; refetchOnMount?: boolean | "always"; refetchOnReconnect?: boolean; queryKey: import("../shared/query-keys").QueryKey; queryFn: ({ signal }: { signal?: AbortSignal; }) => Promise<TPaymentProvider[]>; }; fetchPaymentProviders: (queryClient: QueryClient, regionId: string) => Promise<TPaymentProvider[]>; }; export type CheckoutHooks<TCart extends CheckoutCartLike, TShippingOption extends ShippingOptionLike, TPaymentProvider, TPaymentCollection extends TCart["payment_collection"], TCompleteResult> = ReturnType<typeof createCheckoutHooks<TCart, TShippingOption, TPaymentProvider, TPaymentCollection, TCompleteResult>>; //# sourceMappingURL=hooks.d.ts.map