UNPKG

trainingpeaks-sdk

Version:
38 lines (37 loc) 1.23 kB
export const generateCurlCommand = (request) => { const { method, url, headers = {}, data, cookies = [] } = request; let curl = `curl -X ${method.toUpperCase()} '${url}'`; Object.entries(headers).forEach(([key, value]) => { if (![ 'user-agent', 'accept-encoding', 'accept-language', 'cache-control', 'sec-fetch-*', ].includes(key.toLowerCase())) { curl += ` \\\n -H '${key}: ${value}'`; } }); if (cookies.length > 0) { const cookieHeader = cookies.join('; '); curl += ` \\\n -H 'Cookie: ${cookieHeader}'`; } if (data) { if (data instanceof URLSearchParams) { const entries = Array.from(data.entries()); if (entries.length > 0) { entries.forEach(([key, value]) => { curl += ` \\\n -d '${key}=${encodeURIComponent(value)}'`; }); } } else if (typeof data === 'string') { curl += ` \\\n -d '${data}'`; } else { const jsonData = JSON.stringify(data, null, 2); curl += ` \\\n -d '${jsonData}'`; } } return curl; };