@voice-ping/cognitive-services-speech
Version:
VoicePing Cognitive Services Speech SDK for JavaScript forked from Microsoft
97 lines (95 loc) • 3.59 kB
JavaScript
// 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