@apistudio/apim-cli
Version:
CLI for API Management Products
38 lines (37 loc) • 1.24 kB
JavaScript
/**
* Copyright IBM Corp. 2024, 2025
*/
import axios from 'axios';
import https from 'https';
const MAX_UPLOAD_SIZE = 20 * 1024 * 1024; // 20 MB
export class AxiosClient {
getAgentConfig(validateSSL) {
return {
httpsAgent: new https.Agent({
rejectUnauthorized: validateSSL, // true = verify SSL, false = ignore SSL errors
}),
};
}
async request(options, isFormDataAvailable = false) {
const { method, url, headers = {}, data, params, timeout = 10000, // default 10s timeout
proxy, validateSSL = false,
// auth,
} = options;
const axiosConfig = {
method,
url,
headers: isFormDataAvailable
? { 'content-type': 'application/octet-stream' }
: headers,
...(data !== undefined && { data }),
...(params && { params }),
...(timeout && { timeout }),
...(proxy && { proxy }),
// ...(auth && { auth }),
...(url && this.getAgentConfig(validateSSL)),
maxContentLength: MAX_UPLOAD_SIZE,
maxBodyLength: MAX_UPLOAD_SIZE,
};
return await axios(axiosConfig);
}
}