mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 14:49:53 +00:00
40 lines
985 B
TypeScript
40 lines
985 B
TypeScript
import { axiosRequest } from '../../network/axios-request';
|
|
|
|
/** This is a client for isomorphic-git {@link https://isomorphic-git.org/docs/en/http} */
|
|
export const httpClient = {
|
|
request: async config => {
|
|
let response;
|
|
let body: Buffer | null = null;
|
|
|
|
if (Array.isArray(config.body)) {
|
|
body = Buffer.concat(config.body);
|
|
}
|
|
|
|
try {
|
|
response = await axiosRequest({
|
|
url: config.url,
|
|
method: config.method,
|
|
headers: config.headers,
|
|
data: body,
|
|
responseType: 'arraybuffer',
|
|
maxRedirects: 10,
|
|
});
|
|
} catch (err) {
|
|
if (!err.response){
|
|
// NOTE: config.url is unreachable
|
|
throw err;
|
|
}
|
|
response = err.response;
|
|
}
|
|
|
|
return {
|
|
url: response.request.res.responseUrl,
|
|
method: response.request.method,
|
|
headers: response.headers,
|
|
body: [response.data],
|
|
statusCode: response.status,
|
|
statusMessage: response.statusText,
|
|
};
|
|
},
|
|
};
|