UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

88 lines (87 loc) 2.77 kB
/** * 注册登录解决方案配置 * 根据不同渠道配置不同的接口地址和参数 */ /** * API 配置接口 */ export interface ApiConfig { url: string; method: 'GET' | 'POST' | 'PUT' | 'DELETE'; transformParams?: (params: any) => any; transformResponse?: (response: any) => any; options?: Record<string, any>; } /** * 渠道配置接口 */ export interface ChannelConfig { sendEmailVerificationCode: ApiConfig; sendEmailLoginCode: ApiConfig; sendSmsRegisterCode: ApiConfig; sendEmailRegisterLink: ApiConfig; verifyEmailRegistrationLink: ApiConfig; emailPasswordLogin: ApiConfig; emailCodeRegister: ApiConfig; phoneCodeRegister: ApiConfig; resendEmailRegisterLink: ApiConfig; checkEmailLinkCode: ApiConfig; sendSmsLoginCode: ApiConfig; phoneCodeLogin: ApiConfig; guestLogin: ApiConfig; checkEmailExists: ApiConfig; checkEmailCode: ApiConfig; checkMobileCode: ApiConfig; phonePasswordLogin: ApiConfig; sendPasswordResetEmail: ApiConfig; sendPasswordResetSms: ApiConfig; sendResetPasswordLink: ApiConfig; checkResetPasswordCode: ApiConfig; resetPasswordByCode: ApiConfig; resetPasswordByEmail: ApiConfig; resetPasswordByPhone: ApiConfig; verifyCode: ApiConfig; register: ApiConfig; login: ApiConfig; oauthLogin: ApiConfig; validateToken: ApiConfig; logout: ApiConfig; getCountries: ApiConfig; facebookLogin: ApiConfig; appleLogin: ApiConfig; } /** * 渠道配置映射 */ export declare const channelConfigMap: Record<string, ChannelConfig>; /** * 获取渠道配置 */ export declare function getChannelConfig(channel: string): ChannelConfig; /** * API 调用器类 * 负责根据配置执行 API 调用 */ export declare class ApiCaller { private request; private config; constructor(request: { get: <T = any>(url: string, data?: any, options?: any) => Promise<T>; post: <T = any>(url: string, data?: any, options?: any) => Promise<T>; put: <T = any>(url: string, data?: any, options?: any) => Promise<T>; delete: <T = any>(url: string, options?: any) => Promise<T>; }, config: ChannelConfig); /** * 执行 API 调用 */ call<T = any>(apiName: keyof ChannelConfig, params?: any, additionalOptions?: any): Promise<T>; } /** * 创建 API 调用器 */ export declare function createApiCaller(request: { get: <T = any>(url: string, data?: any, options?: any) => Promise<T>; post: <T = any>(url: string, data?: any, options?: any) => Promise<T>; put: <T = any>(url: string, data?: any, options?: any) => Promise<T>; delete: <T = any>(url: string, options?: any) => Promise<T>; }, channel: string): ApiCaller;