UNPKG

openapi-diff

Version:

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

25 lines (24 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveSpecFormat = void 0; const open_api_diff_error_impl_1 = require("../../common/open-api-diff-error-impl"); const is_swagger2_content_1 = require("./swagger2/is-swagger2-content"); const detectContentFormat = (specContent) => (0, is_swagger2_content_1.isSwagger2Content)(specContent) ? 'swagger2' : 'openapi3'; const typeSafeSupportedFormats = { openapi3: null, swagger2: null }; const supportedFormats = Object.keys(typeSafeSupportedFormats); const isSpecFormat = (unverifiedFormat) => supportedFormats.indexOf(unverifiedFormat) >= 0; const toVerifiedFormat = (spec) => { if (!isSpecFormat(spec.unverifiedFormat)) { throw new open_api_diff_error_impl_1.OpenApiDiffErrorImpl('OPENAPI_DIFF_PARSE_ERROR', `"${spec.location}" format "${spec.unverifiedFormat}" is not supported`); } return spec.unverifiedFormat; }; const autoDetectFormat = 'auto-detect'; const isAutoDetect = (unverifiedFormat) => unverifiedFormat === autoDetectFormat; const resolveSpecFormat = (spec) => isAutoDetect(spec.unverifiedFormat) ? detectContentFormat(spec.content) : toVerifiedFormat(spec); exports.resolveSpecFormat = resolveSpecFormat;