UNPKG

@apideck/portman

Version:

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

74 lines 4.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CollectionWriter = void 0; var tslib_1 = require("tslib"); var _1 = require("."); var utils_1 = require("../utils"); var writeCollectionTestScripts_1 = require("./globals/writeCollectionTestScripts"); var openapi_format_1 = require("openapi-format"); var CollectionWriter = (function () { function CollectionWriter(config, options, collection) { this.config = config; this.options = options; this.collection = collection; } CollectionWriter.prototype.execute = function () { var _a = this.options, envFile = _a.envFile, baseUrl = _a.baseUrl; var _b = this.config.globals, globals = _b === void 0 ? {} : _b; var _c = globals, _d = _c.collectionPreRequestScripts, collectionPreRequestScripts = _d === void 0 ? [] : _d, _e = _c.collectionTestScripts, collectionTestScripts = _e === void 0 ? [] : _e, _f = _c.collectionVariables, collectionVariables = _f === void 0 ? {} : _f, _g = _c.securityOverwrites, securityOverwrites = _g === void 0 ? {} : _g, _h = _c.keyValueReplacements, keyValueReplacements = _h === void 0 ? {} : _h, _j = _c.valueReplacements, valueReplacements = _j === void 0 ? {} : _j, _k = _c.rawReplacements, rawReplacements = _k === void 0 ? [] : _k, _l = _c.orderOfOperations, orderOfOperations = _l === void 0 ? [] : _l, _m = _c.orderOfFolders, orderOfFolders = _m === void 0 ? [] : _m, variableCasing = _c.variableCasing; var collection = this.collection; if (collection.auth && variableCasing) { if (collection.auth.bearer) { collection.auth.bearer = collection.auth.bearer.map(function (el) { return el.key === 'token' && el.value.includes('{{') && el.value.includes('}}') ? tslib_1.__assign(tslib_1.__assign({}, el), { value: '{{' + (0, openapi_format_1.changeCase)(el.value, variableCasing !== null && variableCasing !== void 0 ? variableCasing : 'camelCase') + '}}' }) : el; }); } if (collection.auth.apikey) { collection.auth.apikey = collection.auth.apikey.map(function (el) { return (el.key === 'key' || el.key === 'in' || el.key === 'value') && el.value.includes('{{') && el.value.includes('}}') ? tslib_1.__assign(tslib_1.__assign({}, el), { value: '{{' + (0, openapi_format_1.changeCase)(el.value, variableCasing !== null && variableCasing !== void 0 ? variableCasing : 'camelCase') + '}}' }) : el; }); } } if (collectionVariables && Object.keys(collectionVariables).length > 0) { collection = (0, _1.writeCollectionVariables)(collection, collectionVariables); } if (securityOverwrites && !(0, utils_1.isEmptyObject)(securityOverwrites)) { collection = (0, _1.overwriteCollectionSecurityValues)(collection, securityOverwrites); } if (keyValueReplacements && !(0, utils_1.isEmptyObject)(keyValueReplacements)) { collection = (0, _1.overwriteCollectionKeyValues)(collection, keyValueReplacements); } if (valueReplacements && !(0, utils_1.isEmptyObject)(valueReplacements)) { collection = (0, _1.overwriteCollectionValues)(collection, valueReplacements); } if (envFile) { collection = (0, _1.injectEnvVariables)(collection, envFile, baseUrl, globals); } if (orderOfOperations && orderOfOperations.length > 0) { collection = (0, _1.orderCollectionRequests)(collection, orderOfOperations); } if (orderOfFolders && orderOfFolders.length > 0) { collection = (0, _1.orderCollectionFolders)(collection, orderOfFolders); } if (collectionPreRequestScripts && collectionPreRequestScripts.length > 0) { collection = (0, _1.writeCollectionPreRequestScripts)(collection, collectionPreRequestScripts); } if (collectionTestScripts && collectionTestScripts.length > 0) { collection = (0, writeCollectionTestScripts_1.writeCollectionTestScripts)(collection, collectionTestScripts); } if (rawReplacements && rawReplacements.length > 0) { var collectionString = (0, _1.writeRawReplacements)(JSON.stringify(collection, null, 2), rawReplacements); this.collection = JSON.parse(collectionString); } else { this.collection = collection; } }; return CollectionWriter; }()); exports.CollectionWriter = CollectionWriter; //# sourceMappingURL=CollectionWriter.js.map