UNPKG

reqzilla

Version:

a lightweight and powerful CLI tool for testing REST APIs directly from the terminal

42 lines (41 loc) 1.37 kB
import axios from 'axios'; import ora from 'ora'; import chalk from 'chalk'; import { formatResponse, verboseOutput, displayOnlyHeaders } from './output.js'; import { parseHeaders, saveResponseToFile } from '../utility.js'; export async function sendRequest(method, url, option) { const spinner = ora(`Sending a ${method} request...`).start(); const { data, Header, outputFile, verbose, onlyHeaders } = option; const headers = parseHeaders(Header || []); try { const response = await axios({ method, url, data: data ? JSON.parse(data) : undefined, headers, }); spinner.succeed(chalk.green('Request succeeded!')); if (verbose) { verboseOutput(response); } else if (onlyHeaders) { displayOnlyHeaders(response); } else { formatResponse(response); } if (outputFile) { saveResponseToFile(response, outputFile); } } catch (err) { spinner.fail(chalk.red('Request failed!')); if (err.response) { console.error( chalk.red(`\nError ${err.response.status}: ${err.response.statusText}`), ); console.error(chalk.yellow(JSON.stringify(err.response.data, null, 2))); } else if (err.request) { console.error(chalk.red('No response received from server.')); } else { console.error(chalk.red('Request error:'), err.message); } } }