UNPKG

@apideck/portman

Version:

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

257 lines 12.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeDynamicPmVars = exports.makeJsonSafeDynamicPmVars = exports.overwriteRequestBodyFormUrlEncoded = exports.overwriteRequestBodyFormData = exports.overwriteRequestBodyJson = exports.overwriteRequestBody = void 0; var tslib_1 = require("tslib"); var utils_1 = require("../../utils"); var overwriteRequestBody = function (dto) { var _a, _b, _c, _d, _e, _f, _g, _h, _j; var overwriteValues = dto.overwriteValues, pmOperation = dto.pmOperation; if (!(overwriteValues instanceof Array)) return pmOperation; if ((_c = (_b = (_a = pmOperation.item) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.raw) { (0, exports.overwriteRequestBodyJson)(dto); return pmOperation; } if ((_f = (_e = (_d = pmOperation.item) === null || _d === void 0 ? void 0 : _d.request) === null || _e === void 0 ? void 0 : _e.body) === null || _f === void 0 ? void 0 : _f.formdata) { (0, exports.overwriteRequestBodyFormData)(dto); return pmOperation; } if ((_j = (_h = (_g = pmOperation.item) === null || _g === void 0 ? void 0 : _g.request) === null || _h === void 0 ? void 0 : _h.body) === null || _j === void 0 ? void 0 : _j.urlencoded) { (0, exports.overwriteRequestBodyFormUrlEncoded)(dto); return pmOperation; } return pmOperation; }; exports.overwriteRequestBody = overwriteRequestBody; var overwriteRequestBodyJson = function (dto) { var _a, _b, _c; var overwriteValues = dto.overwriteValues, pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, globals = dto.globals; if (!(overwriteValues instanceof Array)) return pmOperation; if (!((_c = (_b = (_a = pmOperation.item) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.raw)) return pmOperation; var requestBody = pmOperation.item.request.body.raw; var requestBodySafe = (0, exports.makeJsonSafeDynamicPmVars)(requestBody); var bodyData = JSON.parse(requestBodySafe); overwriteValues.map(function (overwriteItem) { if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.key) && typeof (overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.value) !== 'undefined') { var root = overwriteItem.key === '.'; var originalValue = root ? bodyData : (0, utils_1.getByPath)(bodyData, overwriteItem.key); var generatedName = (0, utils_1.parseTpl)({ template: overwriteItem.value, oaOperation: oaOperation, options: { casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing } }); var newValue = (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; if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.overwrite) === false) { if (Array.isArray(originalValue) && Array.isArray(newValue)) { newValue = originalValue.concat(newValue); } else if ((0, utils_1.isObject)(originalValue)) { newValue = tslib_1.__assign(tslib_1.__assign({}, originalValue), newValue); } else { newValue = originalValue + newValue; } } if (root) { bodyData = overwriteItem.overwrite ? newValue : tslib_1.__assign(tslib_1.__assign({}, bodyData), newValue); } else { bodyData = (0, utils_1.setByPath)(bodyData, overwriteItem.key, newValue); } } if (overwriteItem.key && overwriteItem.remove === true) { bodyData = (0, utils_1.omitByPath)(bodyData, overwriteItem.key); } }); var bodyString = JSON.stringify(bodyData, null, 4); var bodyStringSafe = (0, exports.decodeDynamicPmVars)(bodyString); pmOperation.item.request.body.raw = bodyStringSafe; return pmOperation; }; exports.overwriteRequestBodyJson = overwriteRequestBodyJson; var overwriteRequestBodyFormData = function (dto) { var _a, _b, _c; var overwriteValues = dto.overwriteValues, pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, globals = dto.globals; if (!(overwriteValues instanceof Array)) return pmOperation; if (!((_c = (_b = (_a = pmOperation.item) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.formdata)) return pmOperation; var formData = pmOperation.item.request.body.formdata; if (formData.count() === 0) return pmOperation; var formMembers = []; var formKeys = formData.map(function (_a) { var key = _a.key; return key; }); var insertNewKeys = overwriteValues.filter(function (x) { return !formKeys.includes(x.key); }); formData.each(function (pmFormParam) { var overwriteItem = overwriteValues.find(function (obj) { return obj.key === pmFormParam.key; }); if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.value) !== undefined) { var pmFormParamAny = pmFormParam; var orgValue = pmFormParamAny.value || pmFormParamAny.src; var generatedName = (0, utils_1.parseTpl)({ template: overwriteItem.value, oaOperation: oaOperation, options: { casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing } }); var newValue = (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; if (overwriteItem.overwrite === false && typeof orgValue === 'string') { newValue = orgValue + newValue; } if (pmFormParamAny.type === 'file') { pmFormParamAny.src = newValue; } else { pmFormParamAny.value = newValue || typeof newValue === 'boolean' ? "".concat(newValue).toString() : ''; } } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.disable) === true) { pmFormParam.disabled = true; } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.description) !== undefined && (pmFormParam === null || pmFormParam === void 0 ? void 0 : pmFormParam.description)) { pmFormParam.description = overwriteItem.description; } if (!((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.remove) === true)) { formMembers.push(pmFormParam); } }); insertNewKeys .filter(function (overwriteItem) { return !(overwriteItem.insert === false); }) .filter(function (overwriteItem) { return !(overwriteItem.remove === true); }) .map(function (formMember) { var pmFormParam = { key: formMember.key, value: '', disabled: false }; if (formMember.value) pmFormParam.value = formMember.value; if (formMember.disable === true) pmFormParam.disabled = true; if (formMember.description) pmFormParam.description = formMember.description; formMembers.push(pmFormParam); }); formData.clear(); formData.assimilate(formMembers, false); return pmOperation; }; exports.overwriteRequestBodyFormData = overwriteRequestBodyFormData; var overwriteRequestBodyFormUrlEncoded = function (dto) { var _a, _b, _c; var overwriteValues = dto.overwriteValues, pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, globals = dto.globals; if (!(overwriteValues instanceof Array)) return pmOperation; if (!((_c = (_b = (_a = pmOperation.item) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.urlencoded)) return pmOperation; var formEncoded = pmOperation.item.request.body.urlencoded; if (formEncoded.count() === 0) return pmOperation; var formMembers = []; var formKeys = formEncoded.map(function (_a) { var key = _a.key; return key; }); var insertNewKeys = overwriteValues.filter(function (x) { return !formKeys.includes(x.key); }); formEncoded.each(function (pmFormParam) { var overwriteItem = overwriteValues.find(function (obj) { return obj.key === pmFormParam.key; }); if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.value) !== undefined && (pmFormParam === null || pmFormParam === void 0 ? void 0 : pmFormParam.value)) { var orgValue = pmFormParam.value; var generatedName = (0, utils_1.parseTpl)({ template: overwriteItem.value, oaOperation: oaOperation, options: { casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing } }); var newValue = (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; if (overwriteItem.overwrite === false) { newValue = orgValue + newValue; } pmFormParam.value = newValue || 'boolean' === typeof newValue ? "".concat(newValue).toString() : ''; } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.disable) === true) { pmFormParam.disabled = true; } if ((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.description) !== undefined && (pmFormParam === null || pmFormParam === void 0 ? void 0 : pmFormParam.description)) { pmFormParam.description = overwriteItem.description; } if (!((overwriteItem === null || overwriteItem === void 0 ? void 0 : overwriteItem.remove) === true)) { formMembers.push(pmFormParam); } }); insertNewKeys .filter(function (overwriteItem) { return !(overwriteItem.insert === false); }) .filter(function (overwriteItem) { return !(overwriteItem.remove === true); }) .map(function (formMember) { var pmFormParam = { key: formMember.key, value: '', disabled: false }; if (formMember.value) pmFormParam.value = formMember.value; if (formMember.disable === true) pmFormParam.disabled = true; if (formMember.description) pmFormParam.description = formMember.description; formMembers.push(pmFormParam); }); formEncoded.clear(); formEncoded.assimilate(formMembers, false); return pmOperation; }; exports.overwriteRequestBodyFormUrlEncoded = overwriteRequestBodyFormUrlEncoded; var makeJsonSafeDynamicPmVars = function (jsonString) { var find = [ ': {{', '}},', '}}\n' ]; var replace = [ ': "{{{', '}}}",', '}}}"\n' ]; find.forEach(function (item, index) { var escapedFind = item.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'); jsonString = jsonString.replace(new RegExp(escapedFind, 'g'), replace[index]); }); return jsonString; }; exports.makeJsonSafeDynamicPmVars = makeJsonSafeDynamicPmVars; var decodeDynamicPmVars = function (jsonString) { var find = [ '"{{$randomInt}}"', '"{{$randomCreditCardMask}}"', '"{{$randomBankAccount}}"', '"{{{', '}}}"' ]; var replace = [ '{{$randomInt}}', '{{$randomCreditCardMask}}', '{{$randomBankAccount}}', '{{', '}}' ]; find.forEach(function (item, index) { var escapedFind = item.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'); jsonString = jsonString.replace(new RegExp(escapedFind, 'g'), replace[index]); }); return jsonString; }; exports.decodeDynamicPmVars = decodeDynamicPmVars; //# sourceMappingURL=overwriteRequestBody.js.map