@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
JavaScript
;
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