UNPKG

guardz

Version:

A simple and lightweight TypeScript type guard library for runtime type validation.

48 lines (47 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reportValidationResults = void 0; const createSimplifiedTree_1 = require("./createSimplifiedTree"); const isDefined_1 = require("../typeguards/isDefined"); const isNil_1 = require("../typeguards/isNil"); /** * Report validation results using functional approach * @param result - The validation result to report * @param config - Optional configuration for error reporting */ const reportValidationResults = (result, config) => { if (result.valid === true || (0, isNil_1.isNil)(config)) { return; } const errorMode = config.errorMode || 'multi'; const reportJsonMode = (config, resultTree) => { if ((0, isDefined_1.isDefined)(resultTree)) { config.callbackOnError(JSON.stringify((0, createSimplifiedTree_1.createSimplifiedTree)(resultTree), null, 2)); } }; const reportMultiMode = (config) => { if (result.errors && Array.isArray(result.errors)) { const errorMessages = result.errors.map(error => error.message); const combinedMessage = errorMessages.join('; '); config.callbackOnError(combinedMessage); } }; const reportSingleMode = (config) => { if (result.errors && Array.isArray(result.errors) && result.errors.length > 0) { const firstError = result.errors[0]; if (firstError) { config.callbackOnError(firstError.message); } } }; if (errorMode === 'json' && (0, isDefined_1.isDefined)(result.tree)) { reportJsonMode(config, result.tree); } else if (errorMode === 'multi') { reportMultiMode(config); } else { reportSingleMode(config); } }; exports.reportValidationResults = reportValidationResults;