From d7166f765fdf2ca6026a12468d84cb1b08d23da6 Mon Sep 17 00:00:00 2001 From: Stuart Date: Tue, 15 Dec 2015 16:54:06 -0500 Subject: [PATCH 1/7] Update index.js --- src/targets/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/targets/index.js b/src/targets/index.js index 228c828ee..397f2b850 100644 --- a/src/targets/index.js +++ b/src/targets/index.js @@ -10,6 +10,7 @@ module.exports = { objc: require('./objc'), ocaml: require('./ocaml'), php: require('./php'), + protocolEngine: require('./protocolEngine'), python: require('./python'), ruby: require('./ruby'), shell: require('./shell'), From 186a7b4ac2f50619ccef222713605e655fa68105 Mon Sep 17 00:00:00 2001 From: Stuart Allen Date: Tue, 15 Dec 2015 16:57:42 -0500 Subject: [PATCH 2/7] added Protocol Engine --- src/targets/protocolEngine/index.js | 12 +++++ src/targets/protocolEngine/native.js | 80 ++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 src/targets/protocolEngine/index.js create mode 100644 src/targets/protocolEngine/native.js diff --git a/src/targets/protocolEngine/index.js b/src/targets/protocolEngine/index.js new file mode 100644 index 000000000..f67ae3b20 --- /dev/null +++ b/src/targets/protocolEngine/index.js @@ -0,0 +1,12 @@ +'use strict' + +module.exports = { + info: { + key: 'protocolEngine', + title: 'Protocol Engine', + extname: '.script', + default: 'native' + }, + + native: require('./native') +} diff --git a/src/targets/protocolEngine/native.js b/src/targets/protocolEngine/native.js new file mode 100644 index 000000000..416fce3e2 --- /dev/null +++ b/src/targets/protocolEngine/native.js @@ -0,0 +1,80 @@ +/** + * @description + * HTTP code snippet generator for native XMLHttpRequest + * + * @author + * @AhmadNassri + * + * for any questions or issues regarding the generated code snippet, please open an issue mentioning the author. + */ + +'use strict' + +var util = require('util') +var CodeBuilder = require('../../helpers/code-builder') + +module.exports = function (source, options) { + var opts = util._extend({ + indent: ' ' + }, options) + + var code = new CodeBuilder(opts.indent) + + var settings = { + async: true, + crossDomain: true, + url: source.fullUrl, + method: source.method, + headers: source.allHeaders + } + + switch (source.postData.mimeType) { + case 'application/x-www-form-urlencoded': + settings.data = source.postData.paramsObj ? source.postData.paramsObj : source.postData.text + break + + case 'application/json': + settings.processData = false + settings.data = source.postData.text + break + + case 'multipart/form-data': + code.push('var form = new FormData();') + + source.postData.params.forEach(function (param) { + code.push('form.append(%s, %s);', JSON.stringify(param.name), JSON.stringify(param.value || param.fileName || '')) + }) + + settings.processData = false + settings.contentType = false + settings.mimeType = 'multipart/form-data' + settings.data = '[form]' + + // remove the contentType header + if (~settings.headers['content-type'].indexOf('boundary')) { + delete settings.headers['content-type'] + } + code.blank() + break + + default: + if (source.postData.text) { + settings.data = source.postData.text + } + } + + code.push('var settinsdffdsdffsdsfdgs = ' + JSON.stringify(settings, null, opts.indent).replace('"[form]"', 'form')) + .blank() + .push('$.ajax(settings).done(function (response) {') + .push(1, 'console.log(response);') + .push('});') + + return code.join() +} + +module.exports.info = { + key: 'protocolEngine', + title: 'Protocol Engine', + link: 'http://docs.valid8.com/', + description: 'Perform an asynchronous HTTP request' +} From b1a4a93ce6711b5d1ca085213afb64cd233575bf Mon Sep 17 00:00:00 2001 From: Stuart Date: Tue, 15 Dec 2015 17:11:31 -0500 Subject: [PATCH 3/7] Update native.js --- src/targets/protocolEngine/native.js | 46 ++-------------------------- 1 file changed, 3 insertions(+), 43 deletions(-) diff --git a/src/targets/protocolEngine/native.js b/src/targets/protocolEngine/native.js index 416fce3e2..ec5d5ee67 100644 --- a/src/targets/protocolEngine/native.js +++ b/src/targets/protocolEngine/native.js @@ -1,11 +1,10 @@ /** * @description - * HTTP code snippet generator for native XMLHttpRequest + * HTTP code snippet generator for native Protocol Engine * * @author - * @AhmadNassri + * @lttlrck * - * for any questions or issues regarding the generated code snippet, please open an issue mentioning the author. */ 'use strict' @@ -28,46 +27,7 @@ module.exports = function (source, options) { headers: source.allHeaders } - switch (source.postData.mimeType) { - case 'application/x-www-form-urlencoded': - settings.data = source.postData.paramsObj ? source.postData.paramsObj : source.postData.text - break - - case 'application/json': - settings.processData = false - settings.data = source.postData.text - break - - case 'multipart/form-data': - code.push('var form = new FormData();') - - source.postData.params.forEach(function (param) { - code.push('form.append(%s, %s);', JSON.stringify(param.name), JSON.stringify(param.value || param.fileName || '')) - }) - - settings.processData = false - settings.contentType = false - settings.mimeType = 'multipart/form-data' - settings.data = '[form]' - - // remove the contentType header - if (~settings.headers['content-type'].indexOf('boundary')) { - delete settings.headers['content-type'] - } - code.blank() - break - - default: - if (source.postData.text) { - settings.data = source.postData.text - } - } - - code.push('var settinsdffdsdffsdsfdgs = ' + JSON.stringify(settings, null, opts.indent).replace('"[form]"', 'form')) - .blank() - .push('$.ajax(settings).done(function (response) {') - .push(1, 'console.log(response);') - .push('});') + code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullurl+'", timeout: 3000 }, "lower");') return code.join() } From 89505843efd22538d1215a32c2d1b4af759fa038 Mon Sep 17 00:00:00 2001 From: Stuart Date: Tue, 15 Dec 2015 17:22:10 -0500 Subject: [PATCH 4/7] Update native.js --- src/targets/protocolEngine/native.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/targets/protocolEngine/native.js b/src/targets/protocolEngine/native.js index ec5d5ee67..b91f4601b 100644 --- a/src/targets/protocolEngine/native.js +++ b/src/targets/protocolEngine/native.js @@ -27,7 +27,7 @@ module.exports = function (source, options) { headers: source.allHeaders } - code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullurl+'", timeout: 3000 }, "lower");') + code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullUrl+'", content: '+source.postData.text+', timeout: 3000 }, "lower");') return code.join() } From db62da374459c1d011bbc189228eed89f52d6843 Mon Sep 17 00:00:00 2001 From: Stuart Allen Date: Sun, 31 Jan 2016 18:01:30 -0500 Subject: [PATCH 5/7] tcl support --- src/targets/index.js | 3 ++- src/targets/tcl/index.js | 12 ++++++++++ src/targets/tcl/native.js | 46 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/targets/tcl/index.js create mode 100644 src/targets/tcl/native.js diff --git a/src/targets/index.js b/src/targets/index.js index 397f2b850..ba34de4a6 100644 --- a/src/targets/index.js +++ b/src/targets/index.js @@ -14,5 +14,6 @@ module.exports = { python: require('./python'), ruby: require('./ruby'), shell: require('./shell'), - swift: require('./swift') + swift: require('./swift'), + tcl: require('./tcl') } diff --git a/src/targets/tcl/index.js b/src/targets/tcl/index.js new file mode 100644 index 000000000..2ae8e838f --- /dev/null +++ b/src/targets/tcl/index.js @@ -0,0 +1,12 @@ +'use strict' + +module.exports = { + info: { + key: 'tcl', + title: 'tcl', + extname: '.tcl', + default: 'native' + }, + + native: require('./native') +} diff --git a/src/targets/tcl/native.js b/src/targets/tcl/native.js new file mode 100644 index 000000000..6b53b3238 --- /dev/null +++ b/src/targets/tcl/native.js @@ -0,0 +1,46 @@ +/** + * @description + * HTTP code snippet generator for TCL + * + * @author + * @lttlrck + * + */ + +'use strict' + +var util = require('util') +var CodeBuilder = require('../../helpers/code-builder') + +module.exports = function (source, options) { + var opts = util._extend({ + indent: ' ' + }, options) + + var code = new CodeBuilder(opts.indent) + + var settings = { + async: true, + crossDomain: true, + url: source.fullUrl, + method: source.method, + headers: source.allHeaders + } + + code.push("package require http"); + code.push("set url "+source.fullUrl); + code.push("set content "+source.postData.text); + code.push("set method "+source.method.toUpperCase()); + + code.push("set http [::http::geturl $url -method $method -type application/json -query $content]"); + code.push("set html [::http::data $http]"); + + return code.join("\n"); +} + +module.exports.info = { + key: 'tcl', + title: 'tcl', + link: 'http://www.tcl.tk/', + description: 'Perform a TCL HTTP request' +} From 54e726f512a8280993856ed4ea37752c54399597 Mon Sep 17 00:00:00 2001 From: Stuart Date: Mon, 15 Feb 2016 09:58:28 -0500 Subject: [PATCH 6/7] Add header support (for authorization) --- src/targets/protocolEngine/native.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/targets/protocolEngine/native.js b/src/targets/protocolEngine/native.js index b91f4601b..c9c92d4a8 100644 --- a/src/targets/protocolEngine/native.js +++ b/src/targets/protocolEngine/native.js @@ -27,7 +27,11 @@ module.exports = function (source, options) { headers: source.allHeaders } - code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullUrl+'", content: '+source.postData.text+', timeout: 3000 }, "lower");') + delete settings.headers['content-type']; + + var headers= JSON.stringify( settings.headers); + + code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullUrl+'", content: '+source.postData.text+', headers: '+headers+', timeout: 3000 }, "lower");') return code.join() } From 6b9f0ead6c19b7412b6e3eceb4ab700ce31b8cb6 Mon Sep 17 00:00:00 2001 From: Stuart Date: Wed, 17 Apr 2019 14:18:47 -0700 Subject: [PATCH 7/7] disable indentation, use short options, add -L --- src/targets/shell/curl.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/targets/shell/curl.js b/src/targets/shell/curl.js index d25f7252b..b62c189c3 100644 --- a/src/targets/shell/curl.js +++ b/src/targets/shell/curl.js @@ -16,13 +16,13 @@ var CodeBuilder = require('../../helpers/code-builder') module.exports = function (source, options) { var opts = util._extend({ - indent: ' ', - short: false + indent: false, + short: true }, options) var code = new CodeBuilder(opts.indent, opts.indent !== false ? ' \\\n' + opts.indent : ' ') - code.push('curl %s %s', opts.short ? '-X' : '--request', source.method) + code.push('curl -L %s %s', opts.short ? '-X' : '--request', source.method) .push(util.format('%s%s', opts.short ? '' : '--url ', helpers.quote(source.fullUrl))) if (source.httpVersion === 'HTTP/1.0') {