// This file is auto-generated by @hey-api/openapi-ts import type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen' export type QuerySerializer = (query: Record) => string export type BodySerializer = (body: any) => any type QuerySerializerOptionsObject = { allowReserved?: boolean array?: Partial> object?: Partial> } export type QuerySerializerOptions = QuerySerializerOptionsObject & { /** * Per-parameter serialization overrides. When provided, these settings * override the global array/object settings for specific parameter names. */ parameters?: Record } const serializeFormDataPair = (data: FormData, key: string, value: unknown): void => { if (typeof value === 'string' || value instanceof Blob) { data.append(key, value) } else if (value instanceof Date) { data.append(key, value.toISOString()) } else { data.append(key, JSON.stringify(value)) } } const serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => { if (typeof value === 'string') { data.append(key, value) } else { data.append(key, JSON.stringify(value)) } } export const formDataBodySerializer = { bodySerializer: | Array>>( body: T ): FormData => { const data = new FormData() Object.entries(body).forEach(([key, value]) => { if (value === undefined || value === null) { return } if (Array.isArray(value)) { value.forEach((v) => serializeFormDataPair(data, key, v)) } else { serializeFormDataPair(data, key, value) } }) return data } } export const jsonBodySerializer = { bodySerializer: (body: T): string => JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)) } export const urlSearchParamsBodySerializer = { bodySerializer: | Array>>(body: T): string => { const data = new URLSearchParams() Object.entries(body).forEach(([key, value]) => { if (value === undefined || value === null) { return } if (Array.isArray(value)) { value.forEach((v) => serializeUrlSearchParamsPair(data, key, v)) } else { serializeUrlSearchParamsPair(data, key, value) } }) return data.toString() } }