@euirim/microsoft-cognitiveservices-speech-sdk
Version:
Microsoft Cognitive Services Speech SDK for JavaScript
85 lines (83 loc) • 3.13 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";
export class SpeechConnectionMessage extends ConnectionMessage {
constructor(messageType, path, requestId, contentType, body, 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 (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.privAdditionalHeaders = additionalHeaders;
}
get path() {
return this.privPath;
}
get requestId() {
return this.privRequestId;
}
get contentType() {
return this.privContentType;
}
get additionalHeaders() {
return this.privAdditionalHeaders;
}
}
SpeechConnectionMessage.fromConnectionMessage = (message) => {
let path = null;
let requestId = null;
let contentType = null;
let requestTimestamp = 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 {
additionalHeaders[headerName] = message.headers[headerName];
}
}
}
}
return new SpeechConnectionMessage(message.messageType, path, requestId, contentType, message.body, additionalHeaders, message.id);
};
//# sourceMappingURL=SpeechConnectionMessage.Internal.js.map