UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

93 lines • 4.84 kB
import type { MedusaCustomerAddressCreateInput, MedusaCustomerAddressUpdateInput } from "../customers/medusa-service"; import type { StorefrontAddressValidationIssue, StorefrontCartAddressAdapter, StorefrontCustomerAddressAdapter } from "../shared/address"; export type CheckoutAddressInput = { firstName?: string | null; lastName?: string | null; street?: string | null; street2?: string | null; city?: string | null; postalCode?: string | null; country?: string | null; province?: string | null; company?: string | null; phone?: string | null; isDefaultShipping?: boolean; isDefaultBilling?: boolean; metadata?: Record<string, unknown>; }; type CheckoutAddressStringField = { [K in keyof CheckoutAddressInput]-?: NonNullable<CheckoutAddressInput[K]> extends string ? K : never; }[keyof CheckoutAddressInput]; export type NormalizedCheckoutAddress<TAddress extends CheckoutAddressInput = CheckoutAddressInput> = Omit<TAddress, CheckoutAddressStringField> & { [K in CheckoutAddressStringField]?: string; }; export type CheckoutAddressData<TAddress extends CheckoutAddressInput = CheckoutAddressInput> = { shipping: TAddress; billing?: TAddress; useSameAddress?: true; email?: string | null; } | { shipping: TAddress; billing: TAddress; useSameAddress: false; email?: string | null; }; export type CheckoutAddressValidationOptions = { requireEmail?: boolean; shippingRequiredFields?: readonly CheckoutAddressStringField[]; billingRequiredFields?: readonly CheckoutAddressStringField[]; }; export type CheckoutAddressValidationIssue = StorefrontAddressValidationIssue; export type MedusaCartAddressPayload = { first_name?: string; last_name?: string; address_1?: string; address_2?: string; city?: string; postal_code?: string; country_code?: string; province?: string; company?: string; phone?: string; }; export type CheckoutCustomerAddressUpdateInput<TAddress extends CheckoutAddressInput = CheckoutAddressInput> = TAddress & { addressId?: string; }; export type MedusaAddressLike = { first_name?: string | null; last_name?: string | null; address_1?: string | null; address_2?: string | null; city?: string | null; postal_code?: string | null; country_code?: string | null; province?: string | null; company?: string | null; phone?: string | null; is_default_shipping?: boolean | null; is_default_billing?: boolean | null; metadata?: Record<string, unknown> | null; }; export type BuildCheckoutCartAddressInputOptions = { defaultCountryCode?: string; countryCodeTransform?: (countryCode: string) => string; }; export type CheckoutCartAddressInput = { email?: string; shippingAddress: MedusaCartAddressPayload; billingAddress: MedusaCartAddressPayload; useSameAddress: boolean; }; export type CheckoutCartAddressAdapterOptions = BuildCheckoutCartAddressInputOptions & Pick<CheckoutAddressValidationOptions, "shippingRequiredFields" | "billingRequiredFields">; export type CheckoutCustomerAddressAdapterOptions = BuildCheckoutCartAddressInputOptions & { requiredFields?: readonly CheckoutAddressStringField[]; }; export declare const defaultCheckoutAddressRequiredFields: readonly CheckoutAddressStringField[]; export declare const getCheckoutAddressValidationIssues: <TAddress extends CheckoutAddressInput>(data: CheckoutAddressData<TAddress>, options?: CheckoutAddressValidationOptions) => CheckoutAddressValidationIssue[]; export declare const mapCheckoutAddressToMedusaCartAddress: <TAddress extends CheckoutAddressInput>(address: TAddress, options?: BuildCheckoutCartAddressInputOptions) => MedusaCartAddressPayload; export declare const mapMedusaAddressToCheckoutAddress: <TAddress extends CheckoutAddressInput = CheckoutAddressInput>(address?: MedusaAddressLike | null) => NormalizedCheckoutAddress<TAddress>; export declare const createCheckoutCartAddressAdapter: <TAddress extends CheckoutAddressInput = CheckoutAddressInput>(options?: CheckoutCartAddressAdapterOptions) => StorefrontCartAddressAdapter<TAddress, MedusaCartAddressPayload>; export declare const createCheckoutCustomerAddressAdapter: <TAddress extends CheckoutAddressInput = CheckoutAddressInput, TUpdateInput extends CheckoutCustomerAddressUpdateInput<TAddress> = CheckoutCustomerAddressUpdateInput<TAddress>>(options?: CheckoutCustomerAddressAdapterOptions) => StorefrontCustomerAddressAdapter<TAddress, MedusaCustomerAddressCreateInput, TUpdateInput, MedusaCustomerAddressUpdateInput>; export declare const buildCheckoutCartAddressInput: <TAddress extends CheckoutAddressInput>(data: CheckoutAddressData<TAddress>, options?: BuildCheckoutCartAddressInputOptions) => CheckoutCartAddressInput; export {}; //# sourceMappingURL=address.d.ts.map