UNPKG

tupleson

Version:

A hackable JSON serializer/deserializer

59 lines 1.4 kB
import { assert } from "../internals/assert.js"; async function* readableStreamToAsyncIterable(stream) { if (Symbol.asyncIterator in stream) { for await (const chunk of stream) { yield chunk; } return; } const reader = stream.getReader(); try { while (true) { const result = await reader.read(); if (result.done) { return; } yield result.value; } } finally { reader.releaseLock(); } } async function* mapIterable(iterable, fn) { for await (const value of iterable) { yield fn(value); } } function createReadableStream() { let controller = null; const stream = new ReadableStream({ start(c) { controller = c; } }); assert(controller, `Could not find controller - this is a bug`); return [stream, controller]; } function createServerEvent(opts) { const { data, event, id, retry } = opts; const emptyLine = ":\n"; return emptyLine + addIfProvided("event", event) + addIfProvided("id", id) + addIfProvided("retry", retry) + addIfProvided("data", data) + "\n"; } function addIfProvided(key, value) { if (value === void 0) { return ""; } if (key === "data") { return `data: ${JSON.stringify(value)} `; } return `${key}: ${value} `; } export { createReadableStream, createServerEvent, mapIterable, readableStreamToAsyncIterable }; //# sourceMappingURL=iterableUtils.mjs.map