UNPKG

@apideck/portman

Version:

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

51 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.writeOperationPreRequestScripts = void 0; var tslib_1 = require("tslib"); var fs_1 = tslib_1.__importDefault(require("fs")); var postman_collection_1 = require("postman-collection"); var writeOperationPreRequestScripts = function (pmOperations, scripts) { return pmOperations.map(function (pmOperation) { var operation = pmOperation.item; var operationEvents = (operation === null || operation === void 0 ? void 0 : operation.events) || []; var preRequestEvent = operationEvents && operationEvents.find(function (e) { return (e === null || e === void 0 ? void 0 : e.listen) === 'prerequest'; }, null); if (!preRequestEvent) { preRequestEvent = { listen: 'prerequest', script: { exec: [], type: 'text/javascript' } }; } var scriptContents = scripts.map(function (src) { if (src.startsWith('file:')) { return getScriptContent(src.replace('file:', '')); } else { return src; } }); var script = new postman_collection_1.Script(preRequestEvent.script); if (script.exec === undefined) script.exec = []; var exec = script.exec && Array.isArray(script.exec) ? [].concat(Array.from(script.exec), Array.from(scriptContents)) : [script.exec].concat(Array.from(scriptContents)); script.update({ exec: exec.filter(function (i) { return Boolean(i); }) }); preRequestEvent.script = script.toJSON(); operation.events.add(new postman_collection_1.Event(preRequestEvent)); return pmOperation; }); }; exports.writeOperationPreRequestScripts = writeOperationPreRequestScripts; function getScriptContent(scriptPath) { try { return fs_1.default.readFileSync(scriptPath, { encoding: 'utf8', flag: 'r' }); } catch (ex) { console.error('\x1b[31m', "Config pre-request script file error - no such file or directory \"".concat(scriptPath, "\"")); process.exit(1); } } //# sourceMappingURL=writeOperationPreRequestScripts.js.map