Skip to content

Commit 3634db5

Browse files
committed
No more binding
No longer need to bind validator.validate
1 parent 3a6db73 commit 3634db5

File tree

2 files changed

+31
-30
lines changed

2 files changed

+31
-30
lines changed

src/index.js

+30-29
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
11
var Ajv = require('ajv');
22

33
class Validator {
4-
constructor(options) {
5-
this.ajv = new Ajv(options);
6-
}
4+
constructor(ajvOptions) {
5+
this.ajv = new Ajv(ajvOptions);
6+
this.validate = this.validate.bind(this);
7+
}
78
/**
89
* Express middleware for validating requests
910
*
1011
* @param {Object} options
1112
* @returns
1213
*/
13-
validate(options) {
14-
var self = this;
15-
return function (req, res, next) {
16-
var validationErrors = {};
14+
validate(options) {
15+
var self = this;
16+
return function (req, res, next) {
17+
var validationErrors = {};
1718

18-
Object.keys(options).forEach(function (requestProperty) {
19-
let schema = options[requestProperty];
20-
let validateFunction = this.ajv.compile(schema);
19+
Object.keys(options).forEach(function (requestProperty) {
20+
let schema = options[requestProperty];
21+
let validateFunction = this.ajv.compile(schema);
2122

22-
var valid = validateFunction(req[requestProperty]);
23+
var valid = validateFunction(req[requestProperty]);
2324

24-
if (!valid) {
25-
validationErrors[requestProperty] = validateFunction.errors;
26-
}
27-
}, self);
25+
if (!valid) {
26+
validationErrors[requestProperty] = validateFunction.errors;
27+
}
28+
}, self);
2829

29-
if (Object.keys(validationErrors).length != 0) {
30-
next(new ValidationError(validationErrors));
31-
} else {
32-
next();
33-
}
34-
};
35-
}
30+
if (Object.keys(validationErrors).length != 0) {
31+
next(new ValidationError(validationErrors));
32+
} else {
33+
next();
34+
}
35+
};
36+
}
3637
}
3738

3839

@@ -51,14 +52,14 @@ class ValidationError extends Error {
5152
*
5253
* @memberOf ValidationError
5354
*/
54-
constructor(validationErrors) {
55-
super();
56-
this.name = 'JsonSchemaValidationError';
57-
this.validationErrors = validationErrors;
58-
}
55+
constructor(validationErrors) {
56+
super();
57+
this.name = 'JsonSchemaValidationError';
58+
this.validationErrors = validationErrors;
59+
}
5960
};
6061

6162
module.exports = {
62-
Validator,
63-
ValidationError
63+
Validator,
64+
ValidationError
6465
};

test/integration-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ app.use(bodyParser.json());
1717
var validator = new Validator({
1818
allErrors: true
1919
});
20-
var validate = validator.validate.bind(validator);
20+
var validate = validator.validate;
2121

2222
var personSchema = {
2323
properties: {

0 commit comments

Comments
 (0)