import { Message } from "@smithy/types"; /** * @internal */ export interface SmithyMessageEncoderStreamOptions { inputStream: AsyncIterable; serializer: (event: T) => Message; } /** * @internal */ export class SmithyMessageEncoderStream implements AsyncIterable { constructor(private readonly options: SmithyMessageEncoderStreamOptions) {} [Symbol.asyncIterator](): AsyncIterator { return this.asyncIterator(); } private async *asyncIterator() { for await (const chunk of this.options.inputStream) { const payloadBuf = this.options.serializer(chunk); yield payloadBuf; } } }