UNPKG

@apideck/portman

Version:

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

87 lines 5.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenApiToPostmanService = void 0; var tslib_1 = require("tslib"); var fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); var openapi_to_postmanv2_1 = tslib_1.__importDefault(require("openapi-to-postmanv2")); var ora_1 = tslib_1.__importDefault(require("ora")); var path_1 = tslib_1.__importDefault(require("path")); var OpenApiToPostmanService = (function () { function OpenApiToPostmanService() { } OpenApiToPostmanService.prototype.convert = function (options) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _this = this; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4, new Promise(function (resolve, reject) { var converterOptions = { parametersResolution: undefined, requestParametersResolution: undefined, exampleParametersResolution: undefined }; var inputFile = options.inputFile, openApiObj = options.openApiObj, configFile = options.configFile, outputFile = options.outputFile; if (openApiObj) { _this.openApiObj = openApiObj; } else if (inputFile) { _this.openApiObj = JSON.parse(fs_extra_1.default.readFileSync(path_1.default.resolve(inputFile), 'utf8')); } else { throw new Error('Missing OpenApiSpec Input.'); } if (configFile) { converterOptions = JSON.parse(fs_extra_1.default.readFileSync(path_1.default.resolve(configFile), 'utf8')); if (!(converterOptions === null || converterOptions === void 0 ? void 0 : converterOptions.parametersResolution)) { if (converterOptions === null || converterOptions === void 0 ? void 0 : converterOptions.requestParametersResolution) { converterOptions.parametersResolution = converterOptions.requestParametersResolution; } if (converterOptions === null || converterOptions === void 0 ? void 0 : converterOptions.exampleParametersResolution) { converterOptions.parametersResolution = converterOptions.exampleParametersResolution; } } } var spinner = (0, ora_1.default)({ prefixText: ' ', text: 'Converting OpenApi to Postman Collection' }).start(); openapi_to_postmanv2_1.default.convertV2({ type: 'json', data: _this.openApiObj }, converterOptions, function (err, status) { if (err) { spinner.fail(err.toString()); reject(err); } if (!status.result) { spinner.fail(status.reason); reject(status.reason); } else if (outputFile) { var filePath = path_1.default.resolve(outputFile); try { fs_extra_1.default.outputFileSync(filePath, JSON.stringify(status.output[0].data, null, 4)); } catch (error) { console.log('Could not write to file', error); spinner.fail(error.toString()); reject(error); } spinner.succeed('Conversion successful'); resolve(status.output[0].data); } else { spinner.succeed('Conversion successful'); resolve(status.output[0].data); } }); })]; case 1: return [2, _a.sent()]; } }); }); }; return OpenApiToPostmanService; }()); exports.OpenApiToPostmanService = OpenApiToPostmanService; //# sourceMappingURL=OpenApiToPostmanService.js.map