openapi-alchemist
Version:
Transform OpenAPI 3 to Swagger 2 with alchemical precision
49 lines (48 loc) • 1.57 kB
JavaScript
;
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;