Spaces:
Configuration error
Configuration error
/** | |
* Extracts a user-friendly error message from various error formats | |
* @param {any} error - The error object or message | |
* @returns {string} - A clean error message | |
*/ | |
export const parseErrorMessage = (error: any): string => { | |
if (!error) return "An unknown error occurred"; | |
// If error is already a string, return it | |
if (typeof error === 'string') return error; | |
// If error has a message property, check if it's a JSON string | |
if (error.message) { | |
try { | |
// Try to parse the error message as JSON | |
const parsedError = JSON.parse(error.message); | |
// Handle common nested error structures | |
if (parsedError.error && parsedError.error.message) { | |
return parsedError.error.message; | |
} | |
// If parsed successfully but no nested message found, stringify it nicely | |
return typeof parsedError === 'string' ? parsedError : JSON.stringify(parsedError, null, 2); | |
} catch (e) { | |
// If parsing fails, just return the original message | |
return error.message; | |
} | |
} | |
// If error has a response with data | |
if (error.response && error.response.data) { | |
if (typeof error.response.data === 'string') return error.response.data; | |
if (error.response.data.message) return error.response.data.message; | |
if (error.response.data.error) { | |
return typeof error.response.data.error === 'string' | |
? error.response.data.error | |
: error.response.data.error.message || JSON.stringify(error.response.data.error); | |
} | |
} | |
// Fallback to stringifying the error | |
return String(error); | |
}; |