UNPKG

hono

Version:

Web framework built on Web Standards

35 lines (34 loc) 893 B
// src/helper/streaming/stream.ts import { StreamingApi } from "../../utils/stream.js"; import { isOldBunVersion } from "./utils.js"; var contextStash = /* @__PURE__ */ new WeakMap(); var stream = (c, cb, onError) => { const { readable, writable } = new TransformStream(); const stream2 = new StreamingApi(writable, readable); if (isOldBunVersion()) { c.req.raw.signal.addEventListener("abort", () => { if (!stream2.closed) { stream2.abort(); } }); } contextStash.set(stream2.responseReadable, c); (async () => { try { await cb(stream2); } catch (e) { if (e === void 0) { } else if (e instanceof Error && onError) { await onError(e, stream2); } else { console.error(e); } } finally { stream2.close(); } })(); return c.newResponse(stream2.responseReadable); }; export { stream };