import type { RequestClient } from '../request-client'; import type { RequestClientConfig } from '../types'; class FileUploader { private client: RequestClient; constructor(client: RequestClient) { this.client = client; } public async upload( url: string, data: Record & { file: Blob | File }, config?: RequestClientConfig, ): Promise { const formData = new FormData(); Object.entries(data).forEach(([key, value]) => { formData.append(key, value); }); const finalConfig: RequestClientConfig = { ...config, headers: { 'Content-Type': 'multipart/form-data', ...config?.headers, }, }; return this.client.post(url, formData, finalConfig); } } export { FileUploader };