// Copyright: Ankitects Pty Ltd and contributors // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export async function postRequest( path: string, body: string | Uint8Array, headers: Record = {}, ): Promise { if (body instanceof Uint8Array) { headers["Content-type"] = "application/octet-stream"; } const resp = await fetch(path, { method: "POST", headers, body, }); if (!resp.ok) { const body = await resp.text(); throw Error(`${resp.status}: ${body}`); } // get returned bytes const respBlob = await resp.blob(); const respBuf = await new Response(respBlob).arrayBuffer(); const bytes = new Uint8Array(respBuf); return bytes; }