| // 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 | |
| }; | |