@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
74 lines • 4.71 kB
JavaScript
;
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