/* This file is part of GNU Taler (C) 2023 Taler Systems S.A. GNU Taler is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Taler; see the file COPYING. If not, see SPDX-License-Identifier: AGPL3.0-or-later */ const textEncoder = new TextEncoder(); export interface HttpLibArgs { enableThrottling?: boolean, } export function encodeBody(body: any): ArrayBuffer { if (body == null) { return new ArrayBuffer(0); } if (typeof body === "string") { return textEncoder.encode(body).buffer; } else if (ArrayBuffer.isView(body)) { return body.buffer; } else if (body instanceof ArrayBuffer) { return body; } else if (typeof body === "object") { return textEncoder.encode(JSON.stringify(body)).buffer; } throw new TypeError("unsupported request body type"); }