UNPKG

openapi-diff

Version:

A CLI tool to identify differences between Swagger/OpenAPI specs.

29 lines (28 loc) 1.49 kB
"use strict"; 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;