UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

119 lines • 9.72 kB
import { type CacheConfig, type CacheStrategy } from "../shared/cache-config"; import type { MutationOptions, ReadQueryOptions, SuspenseQueryOptions } from "../shared/hook-types"; import { type PrefetchSkipMode } from "../shared/prefetch"; import type { QueryNamespace } from "../shared/query-keys"; import type { StorageValueStore } from "../shared/storage-value-store"; import type { AddLineItemInputBase, CartAddressAdapter, CartAddressInputBase, CartCreateInputBase, CartInputBase, CartLike, CartQueryKeys, CartService, RemoveLineItemInputBase, TransferCartInputBase, UpdateCartInputBase, UpdateLineItemInputBase, UseCartResult, UseSuspenseCartResult } from "./types"; type CartTransientInput = { cartId?: string; autoCreate?: boolean; autoUpdateRegion?: boolean; enabled?: boolean; variantId?: string; quantity?: number; useSameAddress?: boolean; shippingAddress?: unknown; billingAddress?: unknown; salesChannelId?: string; }; type CartCreateTransientInput = CartTransientInput; type CartUpdateTransientInput = CartTransientInput; type AddLineItemTransientInput = { cartId?: string; autoCreate?: boolean; autoUpdateRegion?: boolean; enabled?: boolean; region_id?: string; country_code?: string; salesChannelId?: string; }; type UpdateLineItemTransientInput = { cartId?: string; lineItemId?: string; enabled?: boolean; autoCreate?: boolean; autoUpdateRegion?: boolean; }; declare const cartPayloadOmitKeys: readonly ["cartId", "autoCreate", "autoUpdateRegion", "enabled", "variantId", "quantity", "useSameAddress", "shippingAddress", "billingAddress", "salesChannelId"]; declare const addLineItemPayloadOmitKeys: readonly ["cartId", "autoCreate", "autoUpdateRegion", "enabled", "region_id", "country_code", "salesChannelId"]; declare const updateLineItemPayloadOmitKeys: readonly ["cartId", "lineItemId", "enabled", "autoCreate", "autoUpdateRegion"]; type NormalizedCartCreatePayload<TInput extends CartCreateInputBase> = Omit<TInput & CartCreateTransientInput, (typeof cartPayloadOmitKeys)[number]> & { sales_channel_id?: string; }; type NormalizedCartUpdatePayload<TInput extends UpdateCartInputBase> = Omit<TInput & CartUpdateTransientInput, (typeof cartPayloadOmitKeys)[number]> & { sales_channel_id?: string; }; type NormalizedAddLineItemPayload<TInput extends AddLineItemInputBase> = Omit<TInput & AddLineItemTransientInput, (typeof addLineItemPayloadOmitKeys)[number]>; type NormalizedUpdateLineItemPayload<TInput extends UpdateLineItemInputBase> = Omit<TInput & UpdateLineItemTransientInput, (typeof updateLineItemPayloadOmitKeys)[number]>; type BuildCreateParamsOption<TCreateInput extends CartCreateInputBase, TCreateParams> = [NormalizedCartCreatePayload<TCreateInput>] extends [TCreateParams] ? { buildCreateParams?: (input: TCreateInput) => TCreateParams; } : { buildCreateParams: (input: TCreateInput) => TCreateParams; }; type BuildUpdateParamsOption<TUpdateInput extends UpdateCartInputBase, TUpdateParams> = [NormalizedCartUpdatePayload<TUpdateInput>] extends [TUpdateParams] ? { buildUpdateParams?: (input: TUpdateInput) => TUpdateParams; } : { buildUpdateParams: (input: TUpdateInput) => TUpdateParams; }; type BuildAddParamsOption<TAddInput extends AddLineItemInputBase, TAddParams> = [NormalizedAddLineItemPayload<TAddInput>] extends [TAddParams] ? { buildAddParams?: (input: TAddInput) => TAddParams; } : { buildAddParams: (input: TAddInput) => TAddParams; }; type BuildCreateInputFromAddInputOption<TAddInput extends AddLineItemInputBase, TCreateInput extends CartCreateInputBase> = [TAddInput] extends [TCreateInput] ? { buildCreateInputFromAddInput?: (input: TAddInput) => TCreateInput; } : { buildCreateInputFromAddInput: (input: TAddInput) => TCreateInput; }; type BuildUpdateItemParamsOption<TUpdateItemInput extends UpdateLineItemInputBase, TUpdateItemParams> = [NormalizedUpdateLineItemPayload<TUpdateItemInput>] extends [ TUpdateItemParams ] ? { buildUpdateItemParams?: (input: TUpdateItemInput) => TUpdateItemParams; } : { buildUpdateItemParams: (input: TUpdateItemInput) => TUpdateItemParams; }; type CreateCartHooksBaseConfig<TCart extends CartLike, TCreateParams, TUpdateParams, TAddParams, TUpdateItemParams, TCompleteResult, TAddressInput, TAddressPayload> = { service: CartService<TCart, TCreateParams, TUpdateParams, TAddParams, TUpdateItemParams, TCompleteResult>; queryKeys?: CartQueryKeys; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; requireRegion?: boolean; cartStorage?: StorageValueStore; isNotFoundError?: (error: unknown) => boolean; addressAdapter?: CartAddressAdapter<TAddressInput, TAddressPayload>; invalidateOnSuccess?: boolean; }; export type CreateCartHooksConfig<TCart extends CartLike, TCreateInput extends CartCreateInputBase, TCreateParams, TUpdateInput extends UpdateCartInputBase, TUpdateParams, TAddInput extends AddLineItemInputBase, TAddParams, TUpdateItemInput extends UpdateLineItemInputBase, TUpdateItemParams, TCompleteResult, TAddressInput, TAddressPayload> = CreateCartHooksBaseConfig<TCart, TCreateParams, TUpdateParams, TAddParams, TUpdateItemParams, TCompleteResult, TAddressInput, TAddressPayload> & BuildCreateParamsOption<TCreateInput, TCreateParams> & BuildUpdateParamsOption<TUpdateInput, TUpdateParams> & BuildAddParamsOption<TAddInput, TAddParams> & BuildCreateInputFromAddInputOption<TAddInput, TCreateInput> & BuildUpdateItemParamsOption<TUpdateItemInput, TUpdateItemParams>; export type CartMutationOptions<TData, TVariables, TContext = unknown> = MutationOptions<TData, TVariables, TContext>; export declare function createCartHooks<TCart extends CartLike, TCreateInput extends CartCreateInputBase, TCreateParams = NormalizedCartCreatePayload<TCreateInput>, TUpdateInput extends UpdateCartInputBase = UpdateCartInputBase, TUpdateParams = NormalizedCartUpdatePayload<TUpdateInput>, TAddInput extends AddLineItemInputBase = AddLineItemInputBase, TAddParams = NormalizedAddLineItemPayload<TAddInput>, TUpdateItemInput extends UpdateLineItemInputBase = UpdateLineItemInputBase, TUpdateItemParams = NormalizedUpdateLineItemPayload<TUpdateItemInput>, TCompleteResult = unknown, TAddressInput = Record<string, unknown>, TAddressPayload = Record<string, unknown>>({ service, buildCreateParams, buildUpdateParams, buildAddParams, buildCreateInputFromAddInput, buildUpdateItemParams, queryKeys, queryKeyNamespace, cacheConfig, requireRegion, cartStorage, isNotFoundError, addressAdapter, invalidateOnSuccess, }: CreateCartHooksConfig<TCart, TCreateInput, TCreateParams, TUpdateInput, TUpdateParams, TAddInput, TAddParams, TUpdateItemInput, TUpdateItemParams, TCompleteResult, TAddressInput, TAddressPayload>): { useCart: (input: CartInputBase, options?: { queryOptions?: ReadQueryOptions<TCart | null>; }) => UseCartResult<TCart>; useSuspenseCart: (input: CartInputBase, options?: { queryOptions?: SuspenseQueryOptions<TCart | null>; }) => UseSuspenseCartResult<TCart>; useCreateCart: (options?: CartMutationOptions<TCart, TCreateInput>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, TCreateInput, unknown>; useUpdateCart: (options?: CartMutationOptions<TCart, TUpdateInput>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, TUpdateInput, unknown>; useUpdateCartAddress: (options?: CartMutationOptions<TCart, CartAddressInputBase<TAddressInput>>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, CartAddressInputBase<TAddressInput>, unknown>; useAddLineItem: (options?: CartMutationOptions<TCart, TAddInput>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, TAddInput, unknown>; useUpdateLineItem: (options?: CartMutationOptions<TCart, TUpdateItemInput>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, TUpdateItemInput, unknown>; useRemoveLineItem: (options?: CartMutationOptions<TCart, RemoveLineItemInputBase>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, RemoveLineItemInputBase, unknown>; useTransferCart: (options?: CartMutationOptions<TCart, TransferCartInputBase>) => import("@tanstack/react-query").UseMutationResult<TCart, Error, TransferCartInputBase, unknown>; useCompleteCart: (options?: CartMutationOptions<TCompleteResult, { cartId?: string; }> & { clearCartOnSuccess?: boolean; }) => import("@tanstack/react-query").UseMutationResult<TCompleteResult, Error, { cartId?: string; }, unknown>; usePrefetchCart: (options?: { cacheStrategy?: CacheStrategy; skipIfCached?: boolean; skipMode?: PrefetchSkipMode; }) => { prefetchCart: (input: CartInputBase) => Promise<void>; }; }; export type CartHooks<TCart extends CartLike, TCreateInput extends CartCreateInputBase, TCreateParams = NormalizedCartCreatePayload<TCreateInput>, TUpdateInput extends UpdateCartInputBase = UpdateCartInputBase, TUpdateParams = NormalizedCartUpdatePayload<TUpdateInput>, TAddInput extends AddLineItemInputBase = AddLineItemInputBase, TAddParams = NormalizedAddLineItemPayload<TAddInput>, TUpdateItemInput extends UpdateLineItemInputBase = UpdateLineItemInputBase, TUpdateItemParams = NormalizedUpdateLineItemPayload<TUpdateItemInput>, TCompleteResult = unknown, TAddressInput = Record<string, unknown>, TAddressPayload = Record<string, unknown>> = ReturnType<typeof createCartHooks<TCart, TCreateInput, TCreateParams, TUpdateInput, TUpdateParams, TAddInput, TAddParams, TUpdateItemInput, TUpdateItemParams, TCompleteResult, TAddressInput, TAddressPayload>>; export {}; //# sourceMappingURL=hooks.d.ts.map