codecrucible-synth
Version:
Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability
69 lines • 1.6 kB
JavaScript
/**
* TypeScript Strict Mode Error Utilities
* Provides type-safe error handling helpers
*/
/**
* Type guard to check if an unknown value is an Error
*/
export function isError(error) {
return error instanceof Error;
}
/**
* Type guard to check if an unknown value has a message property
*/
export function hasMessage(error) {
return (typeof error === 'object' &&
error !== null &&
'message' in error &&
typeof error.message === 'string');
}
/**
* Safely get error message from unknown error type
*/
export function getErrorMessage(error) {
if (isError(error)) {
return error.message;
}
if (hasMessage(error)) {
return error.message;
}
if (typeof error === 'string') {
return error;
}
return 'An unknown error occurred';
}
/**
* Safely get error stack from unknown error type
*/
export function getErrorStack(error) {
if (isError(error)) {
return error.stack;
}
return undefined;
}
/**
* Convert unknown error to Error instance
*/
export function toError(error) {
if (isError(error)) {
return error;
}
if (hasMessage(error)) {
return new Error(error.message);
}
if (typeof error === 'string') {
return new Error(error);
}
return new Error('An unknown error occurred');
}
/**
* Type-safe error handler for catch blocks
*/
export function handleError(error, context) {
const err = toError(error);
if (context) {
err.message = `${context}: ${err.message}`;
}
return err;
}
//# sourceMappingURL=error-utils.js.map