Skip to content

Commit

Permalink
chore(frontend): Take into account other error message types (#6647)
Browse files Browse the repository at this point in the history
  • Loading branch information
amanape authored Feb 7, 2025
1 parent 478b225 commit 5fa2634
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
12 changes: 10 additions & 2 deletions frontend/src/utils/retrieve-axios-error-message.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { AxiosError } from "axios";
import { isAxiosErrorWithResponse } from "./type-guards";
import {
isAxiosErrorWithErrorField,
isAxiosErrorWithMessageField,
} from "./type-guards";

/**
* Retrieve the error message from an Axios error
Expand All @@ -8,8 +11,13 @@ import { isAxiosErrorWithResponse } from "./type-guards";
export const retrieveAxiosErrorMessage = (error: AxiosError) => {
let errorMessage: string | null = null;

if (isAxiosErrorWithResponse(error) && error.response?.data.error) {
if (isAxiosErrorWithErrorField(error) && error.response?.data.error) {
errorMessage = error.response?.data.error;
} else if (
isAxiosErrorWithMessageField(error) &&
error.response?.data.message
) {
errorMessage = error.response?.data.message;
} else {
errorMessage = error.message;
}
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/utils/type-guards.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
import { AxiosError } from "axios";

export const isAxiosErrorWithResponse = (
export const isAxiosErrorWithErrorField = (
error: AxiosError,
): error is AxiosError<{ error: string }> =>
typeof error.response?.data === "object" &&
error.response?.data !== null &&
"error" in error.response.data &&
typeof error.response?.data?.error === "string";

export const isAxiosErrorWithMessageField = (
error: AxiosError,
): error is AxiosError<{ message: string }> =>
typeof error.response?.data === "object" &&
error.response?.data !== null &&
"message" in error.response.data &&
typeof error.response?.data?.message === "string";

0 comments on commit 5fa2634

Please sign in to comment.