Spaces:
Sleeping
Sleeping
import axios, { AxiosInstance, AxiosRequestHeaders } from "axios"; | |
import tunnel from "tunnel"; | |
interface ProxyConfig { | |
host: string; | |
port: number; | |
} | |
export function createAxiosInstance( | |
baseURL: string, | |
headers?: AxiosRequestHeaders, | |
useProxy: boolean = false, | |
proxyConfig?: ProxyConfig | |
): AxiosInstance { | |
let agent; | |
if (useProxy && proxyConfig) { | |
agent = tunnel.httpsOverHttp({ | |
proxy: proxyConfig, | |
}); | |
} | |
return axios.create({ | |
baseURL, | |
timeout: 30000, | |
headers, | |
httpsAgent: useProxy ? agent : undefined, | |
withCredentials: true, | |
}); | |
} | |