lookingfor2 В вашем варианте будет работать только на плоской структуре DTO:
{
"message": ""// Ошибка валидации тут
}
Вот такая реализация учитывает вложенные поля, при валидации которых возникнет ошибка:
{
"message": "",
"parent": {
"child": "" // Ошибка валидации тут
}
}
type IErrorMessage = Record<string, any>;
function formatErrorsHelper(errors: ValidationError[]): IErrorMessage[] {
return errors.map((item): IErrorMessage => {
const { property, constraints, children } = item;
const result: IErrorMessage = {};
if (constraints) {
result[property] = Object.values(constraints);
}
if (Array.isArray(children) && children.length > 0) {
result[property] = formatErrorsHelper(children);
}
return result;
});
}
Функция вернёт такой массив:
{
"message": ["Сообщение об ошибке валидации"],
"parent": [
{
"child": ["Сообщение об ошибке валидации"]
}
]
}