import axios, {AxiosRequestConfig, AxiosResponse} from 'axios'; import * as _ from 'lodash'; export async function request(url: string, config: AxiosRequestConfig, proxy?: string): Promise { config = _.cloneDeep(config); if (proxy) { let proxyUrl = config.url || url; if (!/https?\:\/\//.test(proxyUrl)) { proxyUrl = location.origin + proxyUrl; } let proxyOptions: AxiosRequestConfig = { url: proxy!, method: config.method, data: { url: proxyUrl, method: config.method, data: config.data } }; url = proxy; config = proxyOptions; } if (!config.method || /^get$/i.test(config.method)) { config.params = config.data; config.method = 'GET'; } return await axios(url, config); }