UNPKG

@nekofar/warpcast

Version:

TypeScript client for interacting with Warpcast APIs

60 lines (58 loc) 1.57 kB
// src/client/core/bodySerializer.ts var serializeFormDataPair = (data, key, value) => { if (typeof value === "string" || value instanceof Blob) { data.append(key, value); } else { data.append(key, JSON.stringify(value)); } }; var serializeUrlSearchParamsPair = (data, key, value) => { if (typeof value === "string") { data.append(key, value); } else { data.append(key, JSON.stringify(value)); } }; var formDataBodySerializer = { bodySerializer: (body) => { const data = new FormData(); Object.entries(body).forEach(([key, value]) => { if (value === void 0 || value === null) { return; } if (Array.isArray(value)) { value.forEach((v) => serializeFormDataPair(data, key, v)); } else { serializeFormDataPair(data, key, value); } }); return data; } }; var jsonBodySerializer = { bodySerializer: (body) => JSON.stringify( body, (_key, value) => typeof value === "bigint" ? value.toString() : value ) }; var urlSearchParamsBodySerializer = { bodySerializer: (body) => { const data = new URLSearchParams(); Object.entries(body).forEach(([key, value]) => { if (value === void 0 || value === null) { return; } if (Array.isArray(value)) { value.forEach((v) => serializeUrlSearchParamsPair(data, key, v)); } else { serializeUrlSearchParamsPair(data, key, value); } }); return data.toString(); } }; export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer };