import { UploadProgress, UploadProgressData } from './core/upload-progress.ts'; import { uploadFileChunked } from './core/upload-chunk.ts'; import { toFile, uploadFiles, randomId } from './query-upload.ts'; export { toFile, randomId }; export { uploadFiles, uploadFileChunked, UploadProgress }; type UploadFileProps = { onStart?: () => void; onDone?: () => void; onProgress?: (progress: number, data: UploadProgressData) => void; onSuccess?: (res: any) => void; onError?: (err: any) => void; token?: string; }; export type ConvertOpts = { appKey?: string; version?: string; username?: string; directory?: string; isPublic?: boolean; filename?: string; /** * 是否不检查应用文件, 默认 true,默认不检测 */ noCheckAppFiles?: boolean; }; export const uploadChunk = async (file: File, opts: ConvertOpts, props?: UploadFileProps) => { const uploadProgress = new UploadProgress({ onStart: function () { props?.onStart?.(); }, onDone: () => { props?.onDone?.(); }, onProgress: (progress, data) => { props?.onProgress?.(progress, data!); }, }); const result = await uploadFileChunked(file, opts, { uploadProgress, token: props?.token!, createEventSource: (url: string, searchParams: URLSearchParams) => { return new EventSource(url + '?' + searchParams.toString()); }, FormDataFn: FormData, }); return result; };