UNPKG

@azure/cosmos

Version:
106 lines (105 loc) 4.32 kB
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 });