openapi-diff
Version:
A CLI tool to identify differences between Swagger/OpenAPI specs.
26 lines (25 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseOpenApi3Responses = void 0;
const dereference_object_1 = require("../common/dereference-object");
const parse_openapi3_body_object_json_schema_1 = require("./parse-openapi3-body-object-json-schema");
const parse_openapi3_response_headers_1 = require("./parse-openapi3-response-headers");
const parseResponse = (responseOrReference, pathBuilder, spec) => {
const response = (0, dereference_object_1.dereferenceObject)(responseOrReference, spec);
return {
headers: (0, parse_openapi3_response_headers_1.parseOpenApi3ResponseHeaders)(response, pathBuilder),
jsonSchema: (0, parse_openapi3_body_object_json_schema_1.parseOpenApi3BodyObjectJsonSchema)(response, pathBuilder, spec),
originalValue: {
originalPath: pathBuilder.build(),
value: responseOrReference
}
};
};
const parseOpenApi3Responses = (responses, pathBuilder, spec) => {
return Object.keys(responses).reduce((accumulator, statusCode) => {
const originalPath = pathBuilder.withChild(statusCode);
accumulator[statusCode] = parseResponse(responses[statusCode], originalPath, spec);
return accumulator;
}, {});
};
exports.parseOpenApi3Responses = parseOpenApi3Responses;