1 | import { Buffer } from "node:buffer";
|
2 | import { JSONParseError } from "./exceptions.js";
|
3 |
|
4 | export function toArray<T>(maybeArr: T | T[]): T[] {
|
5 | return Array.isArray(maybeArr) ? maybeArr : [maybeArr];
|
6 | }
|
7 |
|
8 | export 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 |
|
16 | export 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 | }
|