swagger-jsdoc = function (options) {
/* istanbul ignore if */
if (!options) {
throw new Error('\'options\' is required.');
} else /* istanbul ignore if */ if (!options.swaggerDefinition) {
throw new Error('\'swaggerDefinition\' is required.');
} else /* istanbul ignore if */ if (!options.apis) {
throw new Error('\'apis\' is required.');
}
// Build basic swagger json
var swaggerObject = swaggerHelpers.swaggerizeObj(options.swaggerDefinition);
var apiPaths = convertGlobPaths(options.apis);
// Parse the documentation in the APIs array.
for (var i = 0; i < apiPaths.length; i = i + 1) {
var files = parseApiFile(apiPaths[i]);
var swaggerJsDocComments = filterJsDocComments(files.jsdoc);
var problems = swaggerHelpers.findDeprecated([files, swaggerJsDocComments]);
// Report a warning in case potential problems encountered.
if (problems.length > 0) {
console.warn('You are using properties to be deprecated in v2.0.0');
console.warn('Please update to align with the swagger v2.0 spec.');
console.warn(problems);
}
swaggerHelpers.addDataToSwaggerObject(swaggerObject, files.yaml);
swaggerHelpers.addDataToSwaggerObject(swaggerObject, swaggerJsDocComments);
}
parser.parse(swaggerObject, function(err, api) {
if (!err) {
swaggerObject = api;
}
});
return swaggerObject;
}
n/a
function addDataToSwaggerObject(swaggerObject, data) { if (!swaggerObject || !data) { throw new Error('swaggerObject and data are required!'); } for (var i = 0; i < data.length; i = i + 1) { var pathObject = data[i]; var propertyNames = Object.getOwnPropertyNames(pathObject); // Iterating the properties of the a given pathObject. for (var j = 0; j < propertyNames.length; j = j + 1) { var propertyName = propertyNames[j]; // Do what's necessary to organize the end specification. _organizeSwaggerProperties(swaggerObject, pathObject, propertyName); } } }
n/a
function findDeprecated(sources) { var wrong = _getSwaggerSchemaWrongProperties(); // accumulate problems encountered var problems = []; sources.forEach(function(source) { // Iterate through `source`, search for `wrong`, accumulate in `problems`. seekWrong(source, wrong, problems); }); return problems; }
n/a
function swaggerizeObj(swaggerObject) { swaggerObject.swagger = '2.0'; swaggerObject.paths = swaggerObject.paths || {}; swaggerObject.definitions = swaggerObject.definitions || {}; swaggerObject.responses = swaggerObject.responses || {}; swaggerObject.parameters = swaggerObject.parameters || {}; swaggerObject.securityDefinitions = swaggerObject.securityDefinitions || {}; swaggerObject.tags = swaggerObject.tags || []; return swaggerObject; }
n/a