@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
123 lines (122 loc) • 3.74 kB
TypeScript
import { CheckoutInitParams, CheckoutError, CheckoutErrorType, LocalOrderData, CartSummaryItem, ExtractedAmountInfo } from '../types';
import { CartItem } from '../../../modules/Cart/types';
import { PaymentItemInput } from '../../../modules/Payment/types';
/**
* 验证结账数据
*/
export declare function validateCheckoutData(params: CheckoutInitParams): {
valid: boolean;
errors: string[];
};
/**
* 创建结账错误对象
*/
export declare function createCheckoutError(type: CheckoutErrorType, message: string, details?: any): CheckoutError;
/**
* 格式化金额
*/
export declare function formatAmount(amount: string | number): string;
/**
* 验证金额
*/
export declare function validateAmount(amount: string | number): boolean;
/**
* 生成唯一订单ID
*/
export declare function generateOrderId(prefix?: string): string;
/**
* 检查是否为有效的支付方式代码
*/
export declare function isValidPaymentMethodCode(code: string): boolean;
/**
* 安全地解析JSON
*/
export declare function safeJsonParse<T>(jsonString: string, defaultValue: T): T;
/**
* 深度克隆对象
*/
export declare function deepClone<T>(obj: T): T;
/**
* 防抖函数
*/
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
/**
* 节流函数
*/
export declare function throttle<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
/**
* 重试函数
*/
export declare function retry<T>(fn: () => Promise<T>, maxAttempts?: number, delay?: number): Promise<T>;
/**
* 检查对象是否为空
*/
export declare function isEmpty(obj: any): boolean;
/**
* 获取错误消息
*/
export declare function getErrorMessage(error: unknown): string;
/**
* 检查是否为生产环境
*/
export declare function isProduction(): boolean;
/**
* 日志记录器
*/
export declare const logger: {
info: (message: string, ...args: any[]) => void;
warn: (message: string, ...args: any[]) => void;
error: (message: string, ...args: any[]) => void;
debug: (message: string, ...args: any[]) => void;
};
/**
* 验证本地订单数据
*/
export declare function validateLocalOrderData(orderData: LocalOrderData): {
valid: boolean;
errors: string[];
};
/**
* 生成本地订单ID
*/
export declare function generateLocalOrderId(): string;
/**
* 格式化日期时间为 YYYY-MM-DD hh:mm:ss 格式
*
* @param date 要格式化的日期对象
* @returns 格式化后的日期时间字符串
*/
export declare function formatDateTime(date: Date): string;
/**
* 从购物车小计数据中提取金额信息
*/
export declare function extractAmountFromCartSummary(cartSummary: CartSummaryItem[]): ExtractedAmountInfo;
/**
* 计算购物车总金额
*/
export declare function calculateTotalAmount(cartItems: CartItem[]): string;
/**
* 判断订单ID是否为本地生成的虚拟ID
*
* @param orderId 订单ID
* @returns true 表示是虚拟ID,false 表示是真实的后端ID
*/
export declare function isVirtualOrderId(orderId: string): boolean;
/**
* 判断支付方式是否需要同步订单到后端
*
* 现金支付(CASHMANUAL)和自定义支付不需要同步,其他支付方式需要同步
*
* @param paymentCode 支付方式代码
* @param paymentType 支付方式类型
* @returns 是否需要同步订单
*/
export declare function shouldSyncOrderForPayment(paymentCode: string, paymentType: string): boolean;
/**
* 判断是否为现金支付
*
* @param paymentCode 支付方式代码
* @param paymentType 支付方式类型
* @returns 是否为现金支付
*/
export declare function isCashPayment(paymentItem: PaymentItemInput): boolean;