import { Buffer } from "node:buffer"; import { JSONParseError } from "./exceptions.js"; export function toArray(maybeArr: T | T[]): T[] { return Array.isArray(maybeArr) ? maybeArr : [maybeArr]; } export function ensureJSON(raw: T): T { if (typeof raw === "object") { return raw; } else { throw new JSONParseError("Failed to parse response body as JSON", { raw }); } } export function createMultipartFormData( this: FormData | void, formBody: Record, ): FormData { const formData = this instanceof FormData ? this : new FormData(); Object.entries(formBody).forEach(([key, value]) => { if (Buffer.isBuffer(value) || value instanceof Uint8Array) { formData.append(key, new Blob([value])); } else { formData.append(key, String(value)); } }); return formData; }