trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
38 lines (37 loc) • 1.23 kB
JavaScript
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;
};