diff --git a/lib/validate.js b/lib/validate.js index 89f2374..429965c 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -83,6 +83,14 @@ function getSchema(checkStyle) { })) })) ), + tags: Joi.array().items(Joi.object().keys({ + name: joiRegex(tagConvention), + description: Joi.string(), + externalDocs: Joi.object().keys({ + description: Joi.string(), + url: Joi.string() + }) + })), parameters: Joi.object().pattern(/.*/, Joi.object().keys(parameterKeys)), definitions: Joi.any() }); @@ -90,12 +98,18 @@ function getSchema(checkStyle) { return schema; } -function validate(checkStyleFile, specFile, callback) { +function validate(checkStyleFile, specFile, options, callback) { + if (_.isFunction(options)) { + callback = options; + options = {}; + } + options = _.extend({ abortEarly: false, allowUnknown: true }, options); + Promise.join(getSpecPromise(specFile), getCheckStylePromise(checkStyleFile), callback, function(spec, checkStyle, callback) { return [spec, getSchema(checkStyle), callback]; }).spread(function(spec, schema, callback) { - return Joi.validate(spec, schema); + return Joi.validate(spec, schema, options); }).then(function(result) { callback(null, result); }).catch(function(e) {