UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

38 lines (37 loc) 1.24 kB
/** * 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); } }