/**
 * Common Error Handling Utilities
 */

/**
 * Safely extract error message from unknown error type
 * Handles Error objects, strings, and any other type
 */
export function getErrorMessage(error: unknown): string {
  if (error instanceof Error) {
    return error.message;
  }
  if (typeof error === 'string') {
    return error;
  }
  return 'Unknown error occurred';
}

/**
 * Get full error details (useful for logging)
 */
export function getErrorDetails(error: unknown): {
  message: string;
  code?: string | number;
  stack?: string;
} {
  if (error instanceof Error) {
    return {
      message: error.message,
      code: (error as any).code,
      stack: error.stack,
    };
  }
  return {
    message: String(error),
  };
}