parse-openapi
Version:
OpenAPI v3 parser
48 lines (47 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOperationResults = void 0;
const areEqual = (a, b) => {
const equal = a.type === b.type && a.base === b.base && a.template === b.template;
if (equal && a.link && b.link) {
return areEqual(a.link, b.link);
}
return equal;
};
const getOperationResults = (operationResponses) => {
const operationResults = [];
// Filter out success response codes, but skip "204 No Content"
operationResponses.forEach(operationResponse => {
const { code } = operationResponse;
if (code && code !== 204 && code >= 200 && code < 300) {
operationResults.push(operationResponse);
}
});
if (!operationResults.length) {
operationResults.push({
in: 'response',
name: '',
code: 200,
description: '',
export: 'generic',
type: 'void',
base: 'void',
template: null,
link: null,
isDefinition: false,
isReadOnly: false,
isRequired: false,
isNullable: false,
imports: [],
enum: [],
enums: [],
properties: [],
});
}
return operationResults.filter((operationResult, index, arr) => {
return (arr.findIndex(item => {
return areEqual(item, operationResult);
}) === index);
});
};
exports.getOperationResults = getOperationResults;