@line/bot-sdk
Version:
Node.js SDK for LINE Messaging API
30 lines (26 loc) • 831 B
text/typescript
import { Buffer } from "node:buffer";
import { JSONParseError } from "./exceptions.js";
export function toArray<T>(maybeArr: T | T[]): T[] {
return Array.isArray(maybeArr) ? maybeArr : [maybeArr];
}
export function ensureJSON<T>(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<string, any>,
): 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;
}