Skip to content

Commit aa2afd8

Browse files
committed
catch axios errors
1 parent 5e8a04a commit aa2afd8

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

src/proxy.ts

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { APIGatewayProxyResult } from "aws-lambda";
2-
import axios, { AxiosResponseHeaders, RawAxiosResponseHeaders } from "axios";
2+
import axios, {
3+
AxiosResponse,
4+
AxiosResponseHeaders,
5+
RawAxiosResponseHeaders,
6+
isAxiosError,
7+
} from "axios";
38
import net from "net";
49
import { EndpointRequest, EndpointResponse } from "./types";
510
import { log } from "./log";
@@ -102,14 +107,27 @@ export const endpointProxy = async ({
102107

103108
log("Proxying request", { url, method, rawHeaders, decodedBody, timeout });
104109

105-
const response = await axios.request({
106-
method: method.toLowerCase(),
107-
url: url.toString(),
108-
headers: rawHeaders,
109-
data: decodedBody,
110-
timeout,
111-
responseType: "arraybuffer",
112-
});
110+
let response: AxiosResponse<any, any> | undefined = undefined;
111+
try {
112+
response = await axios.request({
113+
method: method.toLowerCase(),
114+
url: url.toString(),
115+
headers: rawHeaders,
116+
data: decodedBody,
117+
timeout,
118+
responseType: "arraybuffer",
119+
});
120+
} catch (e) {
121+
if (isAxiosError(e) && e.response) {
122+
response = e.response;
123+
} else {
124+
throw e;
125+
}
126+
}
127+
128+
if (!response) {
129+
throw new Error("No response received");
130+
}
113131

114132
const { data: rawData, headers: rawResponseHeaders } = response;
115133

0 commit comments

Comments
 (0)