Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/core / src / tracing / instrumentation / protocols / captureHttpHeadersUtil.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";function mergeExtraHeaders(headersAlreadyCapturedIfAny,extraHttpHeadersToCapture,getHeader){if(!extraHttpHeadersToCapture||0===extraHttpHeadersToCapture.length)return headersAlreadyCapturedIfAny;let additionalHeaders={},additionalHeadersFound=!1;for(let i=0;i<extraHttpHeadersToCapture.length;i++){var key=extraHttpHeadersToCapture[i],value=getHeader(key);Array.isArray(value)?(additionalHeaders[key]=value.join(", "),additionalHeadersFound=!0):"number"==typeof value?(additionalHeaders[key]=String(value),additionalHeadersFound=!0):value&&(additionalHeaders[key]=value,additionalHeadersFound=!0)}return additionalHeadersFound||(additionalHeaders=void 0),headersAlreadyCapturedIfAny&&additionalHeaders?Object.assign(headersAlreadyCapturedIfAny,additionalHeaders):additionalHeaders||headersAlreadyCapturedIfAny}exports.getExtraHeadersFromMessage=function(message,extraHttpHeadersToCapture){return exports.getExtraHeadersFromNormalizedObjectLiteral(message.headers,extraHttpHeadersToCapture)},exports.getExtraHeadersFromNormalizedObjectLiteral=function(headers,extraHttpHeadersToCapture){if(extraHttpHeadersToCapture&&0!==extraHttpHeadersToCapture.length){let extraHeadersFound=!1;var extraHeaders={};for(let i=0;i<extraHttpHeadersToCapture.length;i++){var key=extraHttpHeadersToCapture[i],value=headers[key];Array.isArray(value)?(extraHeaders[key]=value.join(", "),extraHeadersFound=!0):value&&(extraHeaders[key]=value,extraHeadersFound=!0)}if(extraHeadersFound)return extraHeaders}},exports.getExtraHeadersFromFetchHeaders=function(headers,extraHttpHeadersToCapture){if(extraHttpHeadersToCapture&&0!==extraHttpHeadersToCapture.length){let extraHeadersFound=!1;var extraHeaders={};for(let i=0;i<extraHttpHeadersToCapture.length;i++){var key=extraHttpHeadersToCapture[i];headers.has(key)&&(extraHeaders[key]=headers.get(key),extraHeadersFound=!0)}if(extraHeadersFound)return extraHeaders}},exports.getExtraHeadersFromOptions=function(options,extraHttpHeadersToCapture){if(options)return exports.getExtraHeadersCaseInsensitive(options.headers,extraHttpHeadersToCapture)},exports.getExtraHeadersCaseInsensitive=function(headers,extraHttpHeadersToCapture){if(extraHttpHeadersToCapture&&0!==extraHttpHeadersToCapture.length&&headers&&"object"==typeof headers){var keys=Object.keys(headers).map(key=>({orig:key,low:key.toLowerCase()}));let extraHeadersFound=!1;var extraHeaders={};for(let i=0;i<extraHttpHeadersToCapture.length;i++){var keyToCapture=extraHttpHeadersToCapture[i];for(let j=0;j<keys.length;j++)keys[j].low===keyToCapture&&(extraHeaders[keys[j].low]=Array.isArray(headers[keys[j].orig])?headers[keys[j].orig].join(", "):headers[keys[j].orig],extraHeadersFound=!0)}if(extraHeadersFound)return extraHeaders}},exports.mergeExtraHeadersFromServerResponseOrClientRequest=function(headersAlreadyCapturedIfAny,message,extraHttpHeadersToCapture){return mergeExtraHeaders(headersAlreadyCapturedIfAny,extraHttpHeadersToCapture,key=>message.getHeader(key))},exports.mergeExtraHeadersFromIncomingMessage=function(headersAlreadyCapturedIfAny,incomingMessage,extraHttpHeadersToCapture){return exports.mergeExtraHeadersFromNormalizedObjectLiteral(headersAlreadyCapturedIfAny,incomingMessage.headers,extraHttpHeadersToCapture)},exports.mergeExtraHeadersFromNormalizedObjectLiteral=function(headersAlreadyCapturedIfAny,headers,extraHttpHeadersToCapture){return headers?mergeExtraHeaders(headersAlreadyCapturedIfAny,extraHttpHeadersToCapture,key=>headers[key]):headersAlreadyCapturedIfAny},exports.mergeExtraHeadersFromFetchHeaders=function(headersAlreadyCapturedIfAny,headers,extraHttpHeadersToCapture){return extraHttpHeadersToCapture&&0!==extraHttpHeadersToCapture.length&&headers?mergeExtraHeaders(headersAlreadyCapturedIfAny,extraHttpHeadersToCapture,keyToCapture=>headers.get(keyToCapture)):headersAlreadyCapturedIfAny},exports.mergeExtraHeadersCaseInsensitive=function(headersAlreadyCapturedIfAny,headers,extraHttpHeadersToCapture){if(!extraHttpHeadersToCapture||0===extraHttpHeadersToCapture.length||!headers)return headersAlreadyCapturedIfAny;const keys=Object.keys(headers).map(key=>({orig:key,low:key.toLowerCase()}));return mergeExtraHeaders(headersAlreadyCapturedIfAny,extraHttpHeadersToCapture,keyToCapture=>{for(let j=0;j<keys.length;j++)if(keys[j].low===keyToCapture)return headers[keys[j].orig];return null})};