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