UNPKG

@ppramanik62/lab-works

Version:

A comprehensive command-line toolkit for hydraulic turbine calculations, supporting Francis Turbine and Pelton Wheel computations with interactive mode and validation.

42 lines 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleError = exports.printZodErrors = void 0; /** * Error handling utilities for validation and general errors */ const zod_1 = require("zod"); const colors_1 = require("./colors"); /** * Format and print Zod validation errors in a user-friendly way */ const printZodErrors = (error) => { console.error(`\n${(0, colors_1.safeColorize)('❌ Validation Error:', colors_1.theme.error)}`); error.issues.forEach((err) => { const field = err.path.length > 0 ? `${err.path.join('.')}` : 'input'; const fieldColored = (0, colors_1.safeColorize)(field, colors_1.theme.accent); const messageColored = (0, colors_1.safeColorize)(err.message, colors_1.theme.info); console.error(` ${(0, colors_1.safeColorize)('•', colors_1.theme.warning)} ${fieldColored}: ${messageColored}`); }); console.error(''); }; exports.printZodErrors = printZodErrors; /** * Handle errors and exit with proper code */ const handleError = (error, exitCode = 1) => { if (error instanceof zod_1.ZodError) { (0, exports.printZodErrors)(error); } else if (error instanceof Error) { const errorMsg = (0, colors_1.safeColorize)('❌ Error:', colors_1.theme.error); const message = (0, colors_1.safeColorize)(error.message, colors_1.theme.info); console.error(`\n${errorMsg} ${message}\n`); } else { const errorMsg = (0, colors_1.safeColorize)('❌ An unknown error occurred', colors_1.theme.error); console.error(`\n${errorMsg}\n`); } process.exit(exitCode); }; exports.handleError = handleError; //# sourceMappingURL=error.js.map