express-jsdoc-swagger
Version:
Swagger OpenAPI 3.x generator
26 lines (22 loc) • 903 B
JavaScript
const errorMessage = require('./errorMessage');
const DEFAULT_CONTENT_TYPE = 'application/json';
const formatJSONExamples = type => (exampleList, contentType, status) => {
let cloneExamples = type === 'requestBody' ? { ...exampleList } : undefined;
if (exampleList && contentType === DEFAULT_CONTENT_TYPE) {
cloneExamples = { ...exampleList };
Object.keys(cloneExamples)
.filter(k => typeof cloneExamples[k].value === 'string')
.forEach(k => {
try {
cloneExamples[k].value = JSON.parse(cloneExamples[k].value);
} catch (err) {
const message = type === 'requestBody'
? 'requestBody example malformed'
: `response example for status ${status} with content-type ${DEFAULT_CONTENT_TYPE} malformed`;
errorMessage(message);
}
});
}
return cloneExamples;
};
module.exports = formatJSONExamples;