UNPKG

botframework-streaming

Version:

Streaming library for the Microsoft Bot Framework

50 lines (44 loc) 1.69 kB
/** * @module botframework-streaming */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { IStreamWrapper } from '../interfaces'; import { PayloadTypes } from '../payloads/payloadTypes'; import type { PayloadSender } from '../payloadTransport/payloadSender'; import type { StreamingRequest } from '../streamingRequest'; import { PayloadDisassembler } from './payloadDisassembler'; /** * Streaming request disassembler. */ export class RequestDisassembler extends PayloadDisassembler { payloadType: PayloadTypes = PayloadTypes.request; /** * Initializes a new instance of the [RequestDisassembler](xref:botframework-streaming.RequestDisassembler) class. * * @param sender The [PayloadSender](xref:botframework-streaming.PayloadSender) to send the disassembled data to. * @param id The ID of this disassembler. * @param request The request to be disassembled. */ constructor( sender: PayloadSender, id: string, public request?: StreamingRequest, ) { super(sender, id); } /** * Gets the stream this disassembler is operating on. * * @returns An [IStreamWrapper](xref:botframework-streaming.IStreamWrapper) with a Subscribable Stream. */ async getStream(): Promise<IStreamWrapper> { const payload = { verb: this.request?.verb, path: this.request?.path, streams: [] }; this.request?.streams?.forEach(function (stream) { payload.streams.push(stream.description); }); return PayloadDisassembler.serialize(payload); } }