@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
42 lines • 2.8 kB
TypeScript
export type StorefrontAddressScope = "shipping" | "billing" | "customer" | "root";
export type StorefrontAddressValidationIssue = {
scope: StorefrontAddressScope;
field: string;
code: string;
message?: string;
};
export type StorefrontAddressValidationResult = readonly StorefrontAddressValidationIssue[] | null | undefined;
export declare const hasStorefrontAddressValidationIssues: (result: StorefrontAddressValidationResult) => result is readonly StorefrontAddressValidationIssue[];
export declare const getStorefrontAddressValidationMessage: (result: StorefrontAddressValidationResult, fallbackMessage?: string) => string;
export declare class StorefrontAddressValidationError extends Error {
readonly issues: StorefrontAddressValidationIssue[];
constructor(issues: readonly StorefrontAddressValidationIssue[], message?: string);
}
export declare const toStorefrontAddressValidationError: (result: StorefrontAddressValidationResult, fallbackMessage?: string) => StorefrontAddressValidationError | null;
export declare const assertStorefrontAddressValidation: (result: StorefrontAddressValidationResult, fallbackMessage?: string) => void;
export type StorefrontCartAddressContext = {
scope: "shipping" | "billing";
};
export type StorefrontCartAddressAdapter<TInput, TPayload = TInput, TStoredAddress = unknown> = {
normalize?: (input: TInput, context: StorefrontCartAddressContext) => TInput;
validate?: (input: TInput, context: StorefrontCartAddressContext) => StorefrontAddressValidationResult;
toPayload?: (input: TInput, context: StorefrontCartAddressContext) => TPayload;
fromAddress?: (input?: TStoredAddress | null, context?: StorefrontCartAddressContext) => TInput;
};
export type StorefrontCustomerCreateAddressContext = {
mode: "create";
};
export type StorefrontCustomerUpdateAddressContext = {
mode: "update";
};
export type StorefrontCustomerAddressAdapter<TCreateInput, TCreateParams = TCreateInput, TUpdateInput = TCreateInput & {
addressId?: string;
}, TUpdateParams = TCreateParams> = {
normalizeCreate?: (input: TCreateInput, context: StorefrontCustomerCreateAddressContext) => TCreateInput;
validateCreate?: (input: TCreateInput, context: StorefrontCustomerCreateAddressContext) => StorefrontAddressValidationResult;
toCreateParams?: (input: TCreateInput, context: StorefrontCustomerCreateAddressContext) => TCreateParams;
normalizeUpdate?: (input: TUpdateInput, context: StorefrontCustomerUpdateAddressContext) => TUpdateInput;
validateUpdate?: (input: TUpdateInput, context: StorefrontCustomerUpdateAddressContext) => StorefrontAddressValidationResult;
toUpdateParams?: (input: TUpdateInput, context: StorefrontCustomerUpdateAddressContext) => TUpdateParams;
};
//# sourceMappingURL=address.d.ts.map