Skip to content

Commit 0aa568d

Browse files
authored
added support for --data-raw flag (#42)
1 parent ac769d6 commit 0aa568d

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

resources/js/curl-to-go.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,19 @@ function curlToGo(curl) {
204204
relevant.method = cmd.request[cmd.request.length-1].toUpperCase();
205205
else if (cmd.X && cmd.X.length > 0)
206206
relevant.method = cmd.X[cmd.X.length-1].toUpperCase(); // if multiple, use last (according to curl docs)
207-
else if (cmd["data-binary"] && cmd["data-binary"].length > 0) {
208-
relevant.method = "POST"; // if data-binary, user method POST
209-
relevant.dataType = "raw"; // if data-binary, post body will be raw
207+
else if (
208+
(cmd["data-binary"] && cmd["data-binary"].length > 0)
209+
|| (cmd["data-raw"] && cmd["data-raw"].length > 0)
210+
) {
211+
// for --data-binary and --data-raw, use method POST & data-type raw
212+
relevant.method = "POST";
213+
relevant.dataType = "raw";
210214
}
211215

212216
// join multiple request body data, if any
213217
var dataAscii = [];
214218
var dataFiles = [];
215-
var loadData = function(d) {
219+
var loadData = function (d, dataRawFlag = false) {
216220
if (!relevant.method)
217221
relevant.method = "POST";
218222

@@ -221,12 +225,15 @@ function curlToGo(curl) {
221225
if (!relevant.headers["Content-Type"])
222226
relevant.headers["Content-Type"] = "application/x-www-form-urlencoded";
223227

224-
for (var i = 0; i < d.length; i++)
225-
{
226-
if (d[i].length > 0 && d[i][0] == "@")
228+
for (var i = 0; i < d.length; i++) {
229+
if (
230+
d[i].length > 0 && d[i][0] == "@"
231+
&& !dataRawFlag // data-raw flag ignores '@' character
232+
) {
227233
dataFiles.push(d[i].substr(1));
228-
else
234+
} else {
229235
dataAscii.push(d[i]);
236+
}
230237
}
231238
};
232239
if (cmd.d)
@@ -235,6 +242,8 @@ function curlToGo(curl) {
235242
loadData(cmd.data);
236243
if (cmd["data-binary"])
237244
loadData(cmd["data-binary"]);
245+
if (cmd["data-raw"])
246+
loadData(cmd["data-raw"], true)
238247
if (dataAscii.length > 0)
239248
relevant.data.ascii = dataAscii.join("&");
240249
if (dataFiles.length > 0)

0 commit comments

Comments
 (0)