import axios, {AxiosInstance, CreateAxiosDefaults} from "axios"; import HttpsProxyAgent from "https-proxy-agent"; import {SessionConstructorOptions} from "tls-client/dist/esm/types"; import {Session} from "tls-client/dist/esm/sessions"; import tlsClient from "tls-client"; export function CreateAxiosProxy(config: CreateAxiosDefaults, proxy?: string): AxiosInstance { const createConfig = {...config}; const useProxy = process.env.http_proxy || proxy; if (useProxy) { createConfig.proxy = false; createConfig.httpAgent = HttpsProxyAgent(useProxy); createConfig.httpsAgent = HttpsProxyAgent(useProxy); } return axios.create(createConfig); } export function CreateTlsProxy(config: SessionConstructorOptions, proxy?: string): Session { const client = new tlsClient.Session(config); const useProxy = process.env.http_proxy || proxy; if (useProxy) { client.proxy = useProxy; } return client; }