UNPKG

openapi-alchemist

Version:

Transform OpenAPI 3 to Swagger 2 with alchemical precision

49 lines (48 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenApi3 = void 0; const types_1 = require("../../types"); const util_1 = require("../util"); const openapi3_to_swagger2_1 = require("../converters/openapi3_to_swagger2"); class OpenApi3 extends types_1.BaseFormat { formatName = 'openapi'; supportedVersions = ['3.0']; constructor(spec) { super(spec); this.format = 'openapi_3'; this.converters['swagger_2'] = (oa) => { const converter = new openapi3_to_swagger2_1.OpenApi3ToSwagger2Converter(oa); return Promise.resolve(converter.convert()); }; } getFormatVersion() { const versionComponents = this.spec.openapi.split('.'); return versionComponents[0] + '.' + versionComponents[1]; } fillMissing(dummyData) { dummyData = dummyData || { info: { title: '< An API title here >', version: '< An API version here >' } }; this.spec = Object.assign({}, dummyData, this.spec); } parsers = { 'JSON': util_1.Util.parseJSON, 'YAML': util_1.Util.parseYAML }; checkFormat(spec) { return spec.openapi !== undefined; } validate(callback) { const result = Promise.resolve({ errors: null, warnings: null }); if (callback) { result.then(result => callback(null, result)).catch(err => callback(err, null)); } return result; } fixSpec() { } } exports.OpenApi3 = OpenApi3;