UNPKG

openapi-diff

Version:

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

27 lines (26 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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 ? parse_swagger2_body_object_json_schema_1.parseSwagger2BodyObjectJsonSchema(bodyParameter, pathBuilder, spec) : undefined; }; const resolveParameters = (parameterOrReferenceArray, spec) => parameterOrReferenceArray.map((entry) => 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 }; }; exports.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 } }; };