UNPKG

@kubb/plugin-client

Version:

API client generator plugin for Kubb, creating type-safe HTTP clients (Axios, Fetch) from OpenAPI specifications for making API requests.

44 lines (39 loc) 1.11 kB
export function buildFormData<T = unknown>(data: T): FormData { const formData = new FormData() function appendData(key: string, value: any) { if (value instanceof Blob) { formData.append(key, value) return } if (value instanceof Date) { formData.append(key, value.toISOString()) return } if (typeof value === 'number' || typeof value === 'boolean') { formData.append(key, String(value)) return } if (typeof value === 'string') { formData.append(key, value) return } if (typeof value === 'object') { formData.append(key, new Blob([JSON.stringify(value)], { type: 'application/json' })) return } } if (data) { Object.entries(data).forEach(([key, value]) => { if (value === undefined || value === null) return if (Array.isArray(value)) { for (const valueItem of value) { if (valueItem === undefined || valueItem === null) continue appendData(key, valueItem) } } else { appendData(key, value) } }) } return formData }