jurl
Version:
A minimal but useful cURL wrapper.
46 lines (40 loc) • 1.09 kB
JavaScript
/**
* Created by instancetype on 8/19/14.
*/
/* jshint bitwise : true, eqeqeq : true, forin : true, noarg : true, noempty : true, nonew : true,
asi : true, esnext : true, laxcomma : true, sub : true, browser : true, node : true, phantom : true */
function parseInput(inputArray, optsObj) {
optsObj = optsObj || {}
var
methods = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE']
, curlArgs
, dataArgs
if ( methods.indexOf(inputArray[0].toUpperCase()) !== -1 ) {
optsObj.method = inputArray[0].toUpperCase()
}
else {
inputArray.unshift('spaceholder')
}
optsObj.url = inputArray[1]
curlArgs = parseMethod(optsObj)
dataArgs = inputArray.slice(2)
if (dataArgs.length) {
dataArgs.forEach(function(dataArg) {
curlArgs.push(['-d'], dataArg)
})
}
return curlArgs
}
function parseMethod(opts) {
switch (opts.method) {
case 'GET':
return ['-i', opts.url]
case 'HEAD':
return ['-I', opts.url]
case 'POST':
return [opts.url]
default:
return ['-X', opts.method, opts.url]
}
}
module.exports = parseInput