import { JSONError } from '@squiz/json-schema-library'; import { ValidationDataMap, ValidationData, SchemaValidationError } from './errors/SchemaValidationError'; export function processValidationResult(errors: JSONError[]): true { if (errors.length > 0) { const ValidationDataMap: ValidationDataMap = errors.reduce((acc: ValidationDataMap, error: JSONError) => { const pointer = error?.data?.pointer; const validationData: ValidationData = { message: error.message, data: error.data, }; Object.keys(acc).includes(pointer) && Array.isArray(acc[pointer]) ? acc[pointer].push(validationData) : (acc[pointer] = [validationData]); return acc; }, {}); throw new SchemaValidationError(errors.map((a) => a.message).join(',\n'), undefined, ValidationDataMap); } return true; }