UNPKG

@ethersphere/swarm-cli

Version:
46 lines (45 loc) 1.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.printCurlCommand = exports.setCurlStore = void 0; const chalk_1 = __importDefault(require("chalk")); const printer_1 = require("./printer"); const curlStore = { path: '', type: 'buffer', folder: false, }; function setCurlStore(props) { curlStore.path = props.path; curlStore.type = props.type; curlStore.folder = props.folder; } exports.setCurlStore = setCurlStore; function printCurlCommand(request) { const params = Object.entries(request.params || {}).filter(([, v]) => v !== undefined); const headers = getHeadersString(request); const queryParameters = new URLSearchParams(params).toString(); const queryString = queryParameters ? '?' + queryParameters : ''; const methodString = request.method.toUpperCase() === 'GET' ? '' : ` -X ${request.method?.toUpperCase()}`; const dataString = getDataString(request); const command = chalk_1.default.cyan(`curl${methodString} "${request.url}${queryString}" ${headers}${dataString}`); printer_1.printer.print(command); } exports.printCurlCommand = printCurlCommand; function getHeadersString(request) { return Object.entries(request.headers || {}) .filter(entry => String(entry[0]).toLowerCase() !== 'content-length') .map(([key, value]) => `-H "${key}: ${value}"`) .join(' '); } function getDataString(request) { if (!curlStore.path || request.method.toUpperCase() !== 'POST' || !request.url.includes('/bzz')) { return ''; } if (curlStore.folder) { return ` --data <${curlStore.type}>`; } return ' --data @' + curlStore.path; }