You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
568 B
31 lines
568 B
|
3 years ago
|
/* eslint-disable
|
||
|
|
strict,
|
||
|
|
no-param-reassign
|
||
|
|
*/
|
||
|
|
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
class ValidationError extends Error {
|
||
|
|
constructor(errors, name) {
|
||
|
|
super();
|
||
|
|
|
||
|
|
this.name = 'ValidationError';
|
||
|
|
|
||
|
|
this.message = `${name || ''} Invalid Options\n\n`;
|
||
|
|
|
||
|
|
this.errors = errors.map((err) => {
|
||
|
|
err.dataPath = err.dataPath.replace(/\//g, '.');
|
||
|
|
|
||
|
|
return err;
|
||
|
|
});
|
||
|
|
|
||
|
|
this.errors.forEach((err) => {
|
||
|
|
this.message += `options${err.dataPath} ${err.message}\n`;
|
||
|
|
});
|
||
|
|
|
||
|
|
Error.captureStackTrace(this, this.constructor);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = ValidationError;
|