Skip to content

Commit 9ebc018

Browse files
authored
Merge pull request #1 from internxt/feature/request-module
feature/request-module
2 parents a437c42 + a16b833 commit 9ebc018

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/request/axios.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
2+
type AxiosError = any;
3+
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
4+
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
5+
type AxiosResponse<T> = any;
6+
type ErrorMessage = string;
7+
8+
/**
9+
* Extracts message from axios error
10+
*
11+
* @param err Axios error
12+
* @returns Extracted error message from axios error
13+
*/
14+
export function extractMessageFromError(err: AxiosError): ErrorMessage {
15+
let errMsg: string;
16+
const error: AxiosError = err as AxiosError;
17+
18+
const isServerError = !!error.response;
19+
const serverUnavailable = !!error.request;
20+
21+
if (isServerError) {
22+
errMsg = (error.response as AxiosResponse<{ error: string }>).data.error;
23+
} else if (serverUnavailable) {
24+
errMsg = 'Server not available';
25+
} else {
26+
errMsg = error.message;
27+
}
28+
29+
return errMsg;
30+
}

0 commit comments

Comments
 (0)