Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
openapi.components.headers = {};
if (openapi['x-links']) {
openapi.components.links = openapi['x-links'];
delete openapi['x-links'];
}
openapi.components.parameters = openapi.parameters || {};
openapi.components.responses = openapi.responses || {};
openapi.components.requestBodies = {};
openapi.components.securitySchemes = openapi.securityDefinitions || {};
openapi.components.schemas = openapi.definitions || {};
delete openapi.definitions;
delete openapi.responses;
delete openapi.parameters;
delete openapi.securityDefinitions;
resolver.optionalResolve(options) // is a no-op if options.resolve is not set
.then(function(){
main(options.openapi, options);
if (options.direct) {
resolve(options.openapi);
}
else {
resolve(options);
}
})
.catch(function(ex){
console.warn(ex);
reject(ex);
});
}));
}
function main(str,source,options){
let input = yaml.parse(str,{schema:'core'});
resolver.resolve(input,source,options)
.then(function(options){
fs.writeFileSync(argv.output,yaml.stringify(options.openapi),'utf8');
})
.catch(function(err){
console.warn(err);
});
}
let obj = {};
try {
obj = JSON.parse(text);
}
catch (ex) {
try {
obj = yaml.parse(text);
yamlMode = true;
}
catch (ex) {
vscode.window.showErrorMessage('Could not parse OpenAPI document as JSON or YAML');
console.warn(ex.message);
return;
}
}
resolver.resolve(obj, editor.document.fileName, {})
.then(function(options){
if (yamlMode) {
vscode.workspace.openTextDocument({ language: 'yaml', content: yaml.stringify(options.openapi) })
.then(function(doc) {
vscode.window.showTextDocument(doc);
})
.then(function(ex) {
console.error(ex);
});
}
else {
vscode.workspace.openTextDocument({ language: 'json', content: JSON.stringify(options.openapi, null, 2)})
.then(function(doc) {
vscode.window.showTextDocument(doc);
})
.then(function(ex){
function convert(api, options, callback) {
api = preProcessor(api);
let defaults = {};
defaults.includes = [];
defaults.search = true;
defaults.theme = 'darkula';
defaults.language_tabs = [{ 'javascript--nodejs': 'Node.JS' },{ 'javascript': 'JavaScript' }, { 'ruby': 'Ruby' }, { 'python': 'Python' }, { 'java': 'Java' }, { 'go': 'Go'}];
options = Object.assign({},defaults,options);
options.openapi = api;
resolver.optionalResolve(options)
.then(function(options){
convertInner(options.openapi, options, callback);
})
.catch(function(ex){
callback(ex);
});
}
return maybe(callback, new Promise(function (resolve, reject) {
setupOptions(options,openapi);
let actions = [];
resolver.optionalResolve(options)
.then(function(){
options.context = [];
validateSync(openapi, options)
.then(function(){
return resolve(options);
})
.catch(function(err){
err.options = options;
return reject(err);
});
})
.catch(function (err) {
return reject(err);
});
}));
}