UNPKG

@cch137/format-utils

Version:

A collection of utility modules for formatting and processing data

39 lines (38 loc) 1.05 kB
export async function readStream(stream) { if (!stream) return new Uint8Array(); const reader = stream.getReader(); const buffers = []; while (true) { const { value, done } = await reader.read(); if (done) break; buffers.push(value); } const array = new Uint8Array(buffers.reduce((size, arr) => size + arr.length, 0)); let offset = 0; for (const buffer of buffers) { array.set(buffer, offset); offset += buffer.length; } return array; } export async function readString(stream, encoding = "utf-8") { return new TextDecoder(encoding).decode(await readStream(stream)); } export async function readJSON(stream) { try { return JSON.parse(await readString(stream)); } catch { } return undefined; } export const toReadableStream = (value) => { return new ReadableStream({ start(controller) { controller.enqueue(value); controller.close(); }, }); }; export default readStream;