feat(#1579): Add file uploading support for CLI (#1572)

* feat(cli): add support for file upload
* fix: remove wrong console log
This commit is contained in:
João Victor Davim 2024-02-13 19:07:11 -03:00 committed by GitHub
parent 2877a88a8a
commit f8eac3469f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View File

@ -1,4 +1,5 @@
const { get, each, filter } = require('lodash');
const fs = require('fs');
const decomment = require('decomment');
const prepareRequest = (request, collectionRoot) => {
@ -106,10 +107,15 @@ const prepareRequest = (request, collectionRoot) => {
if (request.body.mode === 'multipartForm') {
const params = {};
const enabledParams = filter(request.body.multipartForm, (p) => p.enabled);
each(enabledParams, (p) => (params[p.name] = p.value));
each(enabledParams, (p) => {
if (p.type === 'file') {
params[p.name] = p.value.map((path) => fs.createReadStream(path));
} else {
params[p.name] = p.value;
}
});
axiosRequest.headers['content-type'] = 'multipart/form-data';
axiosRequest.data = params;
// TODO: Add support for file uploads
}
if (request.body.mode === 'graphql') {

View File

@ -40,10 +40,13 @@ const runSingleRequest = async function (
// make axios work in node using form data
// reference: https://github.com/axios/axios/issues/1006#issuecomment-320165427
if (request.headers && request.headers['content-type'] === 'multipart/form-data') {
// TODO: Add support for file uploads
const form = new FormData();
forOwn(request.data, (value, key) => {
form.append(key, value);
if (value instanceof Array) {
each(value, (v) => form.append(key, v));
} else {
form.append(key, value);
}
});
extend(request.headers, form.getHeaders());
request.data = form;