express-json-validator-middleware
Advanced tools
Comparing version 0.0.5 to 0.0.6
{ | ||
"name": "express-json-validator-middleware", | ||
"version": "0.0.5", | ||
"description": "An Express middleware to validate requests against JSON Schema", | ||
"version": "0.0.6", | ||
"description": "An Express middleware to validate requests against JSON Schemas", | ||
"main": "src/index.js", | ||
@@ -6,0 +6,0 @@ "scripts": { |
@@ -5,22 +5,27 @@ var Ajv = require('ajv'); | ||
}); | ||
var localize = require('ajv-i18n'); | ||
/** | ||
* Express middleware for validating requests | ||
* | ||
* @param {Object} options | ||
* @returns | ||
*/ | ||
function validate(options) { | ||
return function (req, res, next) { | ||
let validationErrors = []; | ||
var validationErrors = {}; | ||
Object.keys(options).forEach(function (requestProperty) { | ||
let schema = options[requestProperty]; | ||
let validate = ajv.compile(schema); | ||
let validateFunction = ajv.compile(schema); | ||
let valid = validate(req[requestProperty]); | ||
var valid = validateFunction(req[requestProperty]); | ||
if (!valid) { | ||
validationErrors.push(valid.errors); | ||
validationErrors[requestProperty] = validateFunction.errors; | ||
} | ||
}); | ||
if (validationErrors) { | ||
next(new ValidationError(localize.en(validate.errors))); | ||
if (Object.keys(validationErrors).length != 0) { | ||
next(new ValidationError(validationErrors)); | ||
} else { | ||
@@ -32,7 +37,20 @@ next(); | ||
/** | ||
* Validation Error | ||
* | ||
* @class ValidationError | ||
* @extends {Error} | ||
*/ | ||
class ValidationError extends Error { | ||
/** | ||
* Creates an instance of ValidationError. | ||
* @param {any} validationErrors | ||
* | ||
* @memberOf ValidationError | ||
*/ | ||
constructor(validationErrors) { | ||
super(); | ||
this.name = 'JsonSchemaValidation'; | ||
this.message = 'express-jsonschema: Invalid data found'; | ||
this.name = 'JsonSchemaValidationError'; | ||
this.validationErrors = validationErrors; | ||
@@ -39,0 +57,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
8430
5
50
0
132