UNPKG

@apideck/portman

Version:

Port OpenAPI Spec to Postman Collection, with contract & variation tests included

97 lines 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.overwriteRequestHeaders = void 0; var tslib_1 = require("tslib"); var utils_1 = require("../../utils"); var overwriteRequestHeaders = function (dto) { var _a; var overwriteValues = dto.overwriteValues, pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, globals = dto.globals; if (!(overwriteValues instanceof Array)) return pmOperation; var headerKeys = pmOperation.item.request.headers.map(function (_a) { var key = _a.key; return key; }); var insertNewKeys = overwriteValues.filter(function (x) { return !headerKeys.includes(x.key); }); pmOperation.item.request.headers.each(function (pmHeader) { overwriteValues.forEach(function (overwriteItem) { if (!((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.key) && (pmHeader === null || pmHeader === void 0 ? void 0 : pmHeader.key) && overwriteItem.key === pmHeader.key) || overwriteItem.insert === false) { return; } var generatedName = (0, utils_1.parseTpl)({ template: overwriteItem.value, oaOperation: oaOperation, options: { casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing } }); var overwriteValue = (overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.value) && (0, utils_1.hasTpl)(overwriteItem.value) ? generatedName : overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.value; var hasValue = false; if (overwriteValue !== undefined) { hasValue = true; var orgValue = pmHeader.value; var newValue = overwriteValue; if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.overwrite) === false && orgValue) { newValue = orgValue + newValue; } pmHeader.value = (newValue !== undefined && newValue !== null) || 'boolean' === typeof newValue ? "".concat(newValue).toString() : ''; } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.disable) === false || hasValue) { pmHeader.disabled = false; } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.disable) === true) { pmHeader.disabled = true; } if (overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.description) { pmHeader.description = overwriteItem.description; } pmOperation.item.request.upsertHeader(pmHeader); }); }); var authorizationType = ['basic', 'bearer', 'apikey']; var authConfig = pmOperation.item.getAuth(); var authType = (authConfig === null || authConfig === void 0 ? void 0 : authConfig.type) || undefined; if ((authType && authorizationType.includes(authType)) || authConfig === undefined) { if (overwriteValues.some(function (obj) { return obj.key && obj.key.toLowerCase() === 'authorization'; })) { (_a = pmOperation.item.request.auth) === null || _a === void 0 ? void 0 : _a.clear(authType); pmOperation.item.request.authorizeUsing('noauth'); } } overwriteValues .filter(function (_a) { var remove = _a.remove; return remove; }) .map(function (headerToRemove) { pmOperation.item.request.headers.remove(function (header) { return header.key === headerToRemove.key; }, null); }); insertNewKeys .filter(function (overwriteItem) { return !(overwriteItem.insert === false || overwriteItem.remove === true); }) .map(function (headerToInsert) { var newPmHeader = { key: headerToInsert.key, value: '', disabled: false }; if (headerToInsert.value) newPmHeader.value = headerToInsert.value; if (headerToInsert.disable === true) newPmHeader.disabled = true; if (headerToInsert.description) newPmHeader.description = headerToInsert.description; pmOperation.item.request.addHeader(newPmHeader); if ((pmOperation === null || pmOperation === void 0 ? void 0 : pmOperation.requestHeaders) && Array.isArray(pmOperation.requestHeaders)) { var disabled = newPmHeader.disabled, reqHeader = tslib_1.__rest(newPmHeader, ["disabled"]); pmOperation.requestHeaders.push(reqHeader); } }); return pmOperation; }; exports.overwriteRequestHeaders = overwriteRequestHeaders; //# sourceMappingURL=overwriteRequestHeaders.js.map