botframework-streaming
Version:
Streaming library for the Microsoft Bot Framework
50 lines (44 loc) • 1.69 kB
text/typescript
/**
* @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);
}
}