linagora-rse
Version:
36 lines (27 loc) • 656 B
JavaScript
const Ajv = require('ajv');
module.exports = {
buildErrorMessage,
createValidateFunction,
createValidator
};
function buildErrorMessage(errors) {
return errors.map(error =>
(error.dataPath ? `${error.dataPath}: ${error.message}` : `${error.message}`)
).join('; ');
}
function createValidateFunction(schema) {
const ajv = new Ajv({
removeAdditional: true
});
return ajv.compile(schema);
}
function createValidator(schema) {
const validate = createValidateFunction(schema);
return data => {
const valid = validate(data);
if (!valid) {
return buildErrorMessage(validate.errors);
}
return null;
};
}