-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy patherrorUtils.ts
More file actions
28 lines (27 loc) · 979 Bytes
/
errorUtils.ts
File metadata and controls
28 lines (27 loc) · 979 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import axios, {AxiosError} from "axios"
import {Logger} from "@aws-lambda-powertools/logger"
/**
* Logs detailed Axios error information and includes context messages.
* @param error - The AxiosError object to handle
* @param contextMessage - Context about where the error occurred
* @param logger - Logger instance for structured logging
*/
export const handleAxiosError = (error: AxiosError, contextMessage: string, logger: Logger) => {
if (axios.isAxiosError(error)) {
const config: Partial<AxiosError["config"]> = error.config || {}
logger.error(contextMessage, {
message: error.message,
status: error.response?.status,
responseData: error.response?.data,
responseHeaders: error.response?.headers,
requestConfig: {
url: config.url,
method: config.method,
headers: config.headers,
data: config.data
}
})
} else {
logger.error("Unexpected error during Axios request", {error})
}
}