openapi-diff
Version:
A CLI tool to identify differences between Swagger/OpenAPI specs.
29 lines (28 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseSwagger2BodyParameter = void 0;
const dereference_object_1 = require("../common/dereference-object");
const parse_swagger2_body_object_json_schema_1 = require("./parse-swagger2-body-object-json-schema");
const parseBodyParameterJsonSchema = (bodyParameter, pathBuilder, spec) => {
return bodyParameter
? (0, parse_swagger2_body_object_json_schema_1.parseSwagger2BodyObjectJsonSchema)(bodyParameter, pathBuilder, spec)
: undefined;
};
const resolveParameters = (parameterOrReferenceArray, spec) => parameterOrReferenceArray.map((entry) => (0, dereference_object_1.dereferenceObject)(entry, spec));
const findBodyParameterAndIndex = (parameters, spec) => {
const resolvedParameters = resolveParameters(parameters, spec);
const index = resolvedParameters.findIndex((resolvedParameter) => resolvedParameter.in === 'body');
return { bodyParameter: resolvedParameters[index], index };
};
const parseSwagger2BodyParameter = (parameters, pathBuilder, spec) => {
const { bodyParameter, index } = findBodyParameterAndIndex(parameters, spec);
const jsonSchema = parseBodyParameterJsonSchema(bodyParameter, pathBuilder.withChild(`${index}`), spec);
return {
jsonSchema,
originalValue: {
originalPath: pathBuilder.build(),
value: bodyParameter
}
};
};
exports.parseSwagger2BodyParameter = parseSwagger2BodyParameter;