openapi-to-postmanv2
Version:
Convert a given OpenAPI specification to Postman Collection v2.0
43 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeRequestAndResponseHeaders = mergeRequestAndResponseHeaders;
/**
* Merges headers from target request into source request.
* Preserves existing header values and only adds new headers or removes headers not in latest.
* @param {HeaderDefinition[] | undefined} targetHeaders - Headers from the target request
* @param {HeaderDefinition[] | undefined} sourceHeaders - Headers from the source request
* @returns {HeaderDefinition[]} Merged headers array
*/
function mergeRequestAndResponseHeaders(targetHeaders, sourceHeaders) {
if (!targetHeaders || targetHeaders.length === 0) {
return [];
}
if (!sourceHeaders || sourceHeaders.length === 0) {
return targetHeaders;
}
const sourceHeadersMap = new Map();
sourceHeaders.forEach((header) => {
if (header?.key) {
sourceHeadersMap.set(header.key.toLowerCase(), header);
}
});
const mergedHeaders = [];
targetHeaders.forEach((targetHeader) => {
if (!targetHeader.key) {
return;
}
const existingHeader = sourceHeadersMap.get(targetHeader.key?.toLowerCase());
if (existingHeader) {
mergedHeaders.push({
...targetHeader,
value: existingHeader.value,
disabled: existingHeader.disabled
});
}
else {
mergedHeaders.push(targetHeader);
}
});
return mergedHeaders;
}
//# sourceMappingURL=HeaderMerger.js.map