async-streamify
Version:
Stream and serialize nested promises and async iterables over HTTP, workers, etc
50 lines (49 loc) • 1.68 kB
JavaScript
;
/**
* @module send
*
* This module provides utilities for serializing objects containing promises
* and async iterables into streams that can be transmitted over HTTP or other protocols.
*
* @example
* ```typescript
* import { AsyncResponse, AsyncObjectSerializer } from "./send/index.ts";
*
* // Using AsyncResponse in a server
* function handler(req: Request) {
* const data = {
* status: "processing",
* result: Promise.resolve({ done: true }),
* updates: (async function*() {
* yield "step 1";
* yield "step 2";
* })()
* };
*
* return new AsyncResponse(data);
* }
*
* // Using AsyncObjectSerializer directly
* const serializer = new AsyncObjectSerializer(data);
* for await (const chunk of serializer) {
* console.log(chunk);
* }
* ```
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./response.js"), exports);
__exportStar(require("./asyncObjectSerializer.js"), exports);