UNPKG

robert-util

Version:
36 lines (35 loc) 1.24 kB
export async function toBuffers(res, maxSize) { return new Promise((resolve, reject) => { let buffers = []; let size = 0; res.on("data", data => { size += Buffer.byteLength(data); if (size > maxSize) reject(new Error("Body over maximum size: " + size)); else buffers.push(data); }); res.on("error", error => reject(error)); res.on("end", () => resolve(buffers)); }); } export async function toBuffer(res, maxSize) { const buffers = await toBuffers(res, maxSize); return Buffer.concat(buffers); } export async function toArrayBuffer(res, maxSize) { const buffer = await toBuffer(res, maxSize); return buffer.slice(buffer.byteLength, buffer.byteOffset + buffer.byteLength); } export async function toBlob(res, maxSize) { const buffers = await toBuffers(res, maxSize); return new Blob(buffers, { type: res.headers["content-type"] }); } export async function toString(res, maxSize) { const buffer = await toBuffer(res, maxSize); return buffer.toString(); } export async function toJSON(res, maxSize) { const string = await toString(res, maxSize); return JSON.parse(string); }