30 lines
548 B
JavaScript
30 lines
548 B
JavaScript
/*
|
|
* Validation
|
|
*/
|
|
|
|
const Ajv = require(`ajv`);
|
|
|
|
const validateOrThrow = (schema, data) => {
|
|
const ajv = new Ajv();
|
|
const valid = ajv.validate(schema, data);
|
|
|
|
if (!valid) {
|
|
throw validationError(ajv.errors);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Build a custom validation error
|
|
* @param {array[string]} validationErrors Validation errors
|
|
*/
|
|
const validationError = (validationErrors = []) => {
|
|
let error = new Error("Validation error(s)");
|
|
error.validationErrors = validationErrors;
|
|
error.code = 400;
|
|
return error;
|
|
};
|
|
|
|
module.exports = {
|
|
validateOrThrow,
|
|
};
|