diff --git a/src/targets/index.js b/src/targets/index.js index 228c828ee..ba34de4a6 100644 --- a/src/targets/index.js +++ b/src/targets/index.js @@ -10,8 +10,10 @@ module.exports = { objc: require('./objc'), ocaml: require('./ocaml'), php: require('./php'), + protocolEngine: require('./protocolEngine'), python: require('./python'), ruby: require('./ruby'), shell: require('./shell'), - swift: require('./swift') + swift: require('./swift'), + tcl: require('./tcl') } 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..c9c92d4a8 --- /dev/null +++ b/src/targets/protocolEngine/native.js @@ -0,0 +1,44 @@ +/** + * @description + * HTTP code snippet generator for native Protocol Engine + * + * @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 + } + + 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() +} + +module.exports.info = { + key: 'protocolEngine', + title: 'Protocol Engine', + link: 'http://docs.valid8.com/', + description: 'Perform an asynchronous HTTP request' +} 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') { 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' +}