@azure/cosmos
Version:
Microsoft Azure Cosmos DB Service Node.js SDK for NOSQL API
106 lines (105 loc) • 4.32 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var headerUtils_exports = {};
__export(headerUtils_exports, {
decodeAndParseJSONString: () => decodeAndParseJSONString,
getInitialHeader: () => getInitialHeader,
getRequestChargeIfAny: () => getRequestChargeIfAny,
mergeHeaders: () => mergeHeaders
});
module.exports = __toCommonJS(headerUtils_exports);
var import_common = require("../common/index.js");
var import_queryMetrics = require("../queryMetrics/queryMetrics.js");
function getRequestChargeIfAny(headers) {
if (typeof headers === "number") {
return headers;
} else if (typeof headers === "string") {
return parseFloat(headers);
}
if (headers) {
const rc = headers[import_common.Constants.HttpHeaders.RequestCharge];
if (rc) {
return parseFloat(rc);
} else {
return 0;
}
} else {
return 0;
}
}
function getInitialHeader() {
const headers = {};
headers[import_common.Constants.HttpHeaders.RequestCharge] = 0;
headers[import_common.Constants.HttpHeaders.QueryMetrics] = {};
return headers;
}
function mergeHeaders(headers, toBeMergedHeaders) {
if (headers[import_common.Constants.HttpHeaders.RequestCharge] === void 0) {
headers[import_common.Constants.HttpHeaders.RequestCharge] = 0;
}
if (headers[import_common.Constants.HttpHeaders.QueryMetrics] === void 0) {
headers[import_common.Constants.HttpHeaders.QueryMetrics] = import_queryMetrics.QueryMetrics.zero;
}
if (!toBeMergedHeaders) {
return;
}
headers[import_common.Constants.HttpHeaders.RequestCharge] += getRequestChargeIfAny(toBeMergedHeaders);
if (toBeMergedHeaders[import_common.Constants.HttpHeaders.IsRUPerMinuteUsed]) {
headers[import_common.Constants.HttpHeaders.IsRUPerMinuteUsed] = toBeMergedHeaders[import_common.Constants.HttpHeaders.IsRUPerMinuteUsed];
}
if (import_common.Constants.HttpHeaders.QueryMetrics in toBeMergedHeaders) {
const headerQueryMetrics = headers[import_common.Constants.HttpHeaders.QueryMetrics];
const toBeMergedHeaderQueryMetrics = toBeMergedHeaders[import_common.Constants.HttpHeaders.QueryMetrics];
for (const partitionId in toBeMergedHeaderQueryMetrics) {
if (headerQueryMetrics[partitionId]) {
const combinedQueryMetrics = headerQueryMetrics[partitionId].add([
toBeMergedHeaderQueryMetrics[partitionId]
]);
headerQueryMetrics[partitionId] = combinedQueryMetrics;
} else {
headerQueryMetrics[partitionId] = toBeMergedHeaderQueryMetrics[partitionId];
}
}
}
if (import_common.Constants.HttpHeaders.IndexUtilization in toBeMergedHeaders) {
headers[import_common.Constants.HttpHeaders.IndexUtilization] = toBeMergedHeaders[import_common.Constants.HttpHeaders.IndexUtilization];
}
if (import_common.Constants.HttpHeaders.CorrelatedActivityId in toBeMergedHeaders) {
headers[import_common.Constants.HttpHeaders.CorrelatedActivityId] = toBeMergedHeaders[import_common.Constants.HttpHeaders.CorrelatedActivityId];
}
}
function decodeAndParseJSONString(inputString) {
try {
if (!inputString || inputString === "") {
return "{}";
}
const decodedString = decodeURIComponent(inputString);
const parsedString = JSON.parse(decodedString);
const indexMetrics = JSON.stringify(parsedString);
return indexMetrics;
} catch (e) {
console.error("Error parsing JSON file:", e.message);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
decodeAndParseJSONString,
getInitialHeader,
getRequestChargeIfAny,
mergeHeaders
});