astrbbbb / dashboard /src /utils /errorUtils.js
qa1145's picture
Upload 1245 files
8ede856 verified
const INVALID_ERROR_STRINGS = new Set(["[object Object]", "undefined", "null", ""]);
const pickResponseMessage = (responseData) => {
if (typeof responseData === "string") {
return responseData.trim();
}
if (!responseData || typeof responseData !== "object") {
return "";
}
const keys = ["message", "error", "detail", "details", "msg"];
for (const key of keys) {
const value = responseData[key];
if (typeof value === "string" && value.trim()) {
return value.trim();
}
}
return "";
};
export const resolveErrorMessage = (err, fallbackMessage = "") => {
if (typeof err === "string") {
return err.trim() || fallbackMessage;
}
if (typeof err === "number" || typeof err === "boolean") {
return String(err);
}
const fromResponse =
pickResponseMessage(err?.response?.data) ||
(typeof err?.response?.statusText === "string"
? err.response.statusText.trim()
: "");
const fromError =
typeof err?.message === "string" ? err.message.trim() : "";
let fromString = "";
if (typeof err?.toString === "function") {
const value = err.toString().trim();
fromString = INVALID_ERROR_STRINGS.has(value) ? "" : value;
}
return fromResponse || fromError || fromString || fallbackMessage;
};