import { uploadToAliyunOSS } from './aliyun-oss' import type { UploadToken, UploadOptions, UploadResult } from './types' export type { UploadToken, UploadOptions, UploadResult } /** * 统一文件上传入口 * * @example * import { upload } from '@carthooks/client-ts' * * const token = await userApi.getUploadToken() * const result = await upload(token, file, { * onProgress: (percent) => console.log(`${percent * 100}%`), * onSuccess: () => console.log('上传成功'), * onError: (err) => console.error('上传失败', err) * }) */ export async function upload( token: UploadToken, file: File, options: UploadOptions = {} ): Promise { switch (token.mode) { case 'aliyun-oss': return uploadToAliyunOSS(token, file, options) default: throw new Error(`Unsupported upload mode: ${token.mode}`) } }