import { Message, MessageDecoder } from "@smithy/types"; /** * @internal */ export interface MessageDecoderStreamOptions { inputStream: AsyncIterable; decoder: MessageDecoder; } /** * @internal */ export class MessageDecoderStream implements AsyncIterable { constructor(private readonly options: MessageDecoderStreamOptions) {} [Symbol.asyncIterator](): AsyncIterator { return this.asyncIterator(); } private async *asyncIterator() { for await (const bytes of this.options.inputStream) { const decoded = this.options.decoder.decode(bytes); yield decoded; } } }