UNPKG

@apideck/portman

Version:

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

54 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRawLanguageFromContentType = exports.getRequestBodyExample = exports.getRequestBodyExamples = void 0; var normalizeRequestBodyExample = function (example, contentType) { if (!contentType.includes('json') || typeof example !== 'string') return example; try { return JSON.parse(example); } catch (error) { return example; } }; var getRequestBodyExamples = function (reqBody, contentType) { if (!(reqBody === null || reqBody === void 0 ? void 0 : reqBody.content)) return []; var content = reqBody.content[contentType]; if (!content) return []; var examples = []; if (content.example !== undefined) { examples.push(normalizeRequestBodyExample(content.example, contentType)); } if (content.examples) { var exampleMap = content.examples; Object.values(exampleMap).forEach(function (exampleObj) { if ((exampleObj === null || exampleObj === void 0 ? void 0 : exampleObj.value) !== undefined) { examples.push(normalizeRequestBodyExample(exampleObj.value, contentType)); } }); } if (content.schema && content.schema.example !== undefined) { examples.push(normalizeRequestBodyExample(content.schema.example, contentType)); } return examples; }; exports.getRequestBodyExamples = getRequestBodyExamples; var getRequestBodyExample = function (reqBody, contentType) { var examples = (0, exports.getRequestBodyExamples)(reqBody, contentType); if (examples.length === 0) return undefined; var example = examples[0]; return typeof example === 'string' ? example : JSON.stringify(example, null, 2); }; exports.getRequestBodyExample = getRequestBodyExample; var getRawLanguageFromContentType = function (contentType) { if (contentType.includes('json')) return 'json'; if (contentType.includes('xml')) return 'xml'; return 'text'; }; exports.getRawLanguageFromContentType = getRawLanguageFromContentType; //# sourceMappingURL=getRequestBodyExample.js.map