UNPKG

831 BPlain TextView Raw
1import { Buffer } from "node:buffer";
2import { JSONParseError } from "./exceptions.js";
3
4export function toArray<T>(maybeArr: T | T[]): T[] {
5 return Array.isArray(maybeArr) ? maybeArr : [maybeArr];
6}
7
8export function ensureJSON<T>(raw: T): T {
9 if (typeof raw === "object") {
10 return raw;
11 } else {
12 throw new JSONParseError("Failed to parse response body as JSON", { raw });
13 }
14}
15
16export function createMultipartFormData(
17 this: FormData | void,
18 formBody: Record<string, any>,
19): FormData {
20 const formData = this instanceof FormData ? this : new FormData();
21 Object.entries(formBody).forEach(([key, value]) => {
22 if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
23 formData.append(key, new Blob([value]));
24 } else {
25 formData.append(key, String(value));
26 }
27 });
28 return formData;
29}