UNPKG

@voice-ping/cognitive-services-speech

Version:

VoicePing Cognitive Services Speech SDK for JavaScript forked from Microsoft

97 lines (95 loc) 3.59 kB
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. import { ArgumentNullError, ConnectionMessage } from "../common/Exports"; const PathHeaderName = "Path"; const ContentTypeHeaderName = "Content-Type"; const RequestIdHeaderName = "X-RequestId"; const RequestTimestampHeaderName = "X-Timestamp"; const RequestStreamIdHeaderName = "x-streamid"; export class SpeechConnectionMessage extends ConnectionMessage { constructor(messageType, path, requestId, contentType, body, streamId, additionalHeaders, id) { if (!path) { throw new ArgumentNullError("path"); } if (!requestId) { throw new ArgumentNullError("requestId"); } const headers = {}; headers[PathHeaderName] = path; headers[RequestIdHeaderName] = requestId; headers[RequestTimestampHeaderName] = new Date().toISOString(); if (contentType) { headers[ContentTypeHeaderName] = contentType; } if (streamId) { headers[RequestStreamIdHeaderName] = streamId; } if (additionalHeaders) { for (const headerName in additionalHeaders) { if (headerName) { headers[headerName] = additionalHeaders[headerName]; } } } if (id) { super(messageType, body, headers, id); } else { super(messageType, body, headers); } this.privPath = path; this.privRequestId = requestId; this.privContentType = contentType; this.privStreamId = streamId; this.privAdditionalHeaders = additionalHeaders; } get path() { return this.privPath; } get requestId() { return this.privRequestId; } get contentType() { return this.privContentType; } get streamId() { return this.privStreamId; } get additionalHeaders() { return this.privAdditionalHeaders; } } SpeechConnectionMessage.fromConnectionMessage = (message) => { let path = null; let requestId = null; let contentType = null; let requestTimestamp = null; let streamId = null; const additionalHeaders = {}; if (message.headers) { for (const headerName in message.headers) { if (headerName) { if (headerName.toLowerCase() === PathHeaderName.toLowerCase()) { path = message.headers[headerName]; } else if (headerName.toLowerCase() === RequestIdHeaderName.toLowerCase()) { requestId = message.headers[headerName]; } else if (headerName.toLowerCase() === RequestTimestampHeaderName.toLowerCase()) { requestTimestamp = message.headers[headerName]; } else if (headerName.toLowerCase() === ContentTypeHeaderName.toLowerCase()) { contentType = message.headers[headerName]; } else if (headerName.toLowerCase() === RequestStreamIdHeaderName.toLowerCase()) { streamId = message.headers[headerName]; } else { additionalHeaders[headerName] = message.headers[headerName]; } } } } return new SpeechConnectionMessage(message.messageType, path, requestId, contentType, message.body, streamId, additionalHeaders, message.id); }; //# sourceMappingURL=SpeechConnectionMessage.Internal.js.map