Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bahamas10/node-curl-cmd
Generate a curl command line argument list from an http request object
https://github.com/bahamas10/node-curl-cmd
Last synced: 2 months ago
JSON representation
Generate a curl command line argument list from an http request object
- Host: GitHub
- URL: https://github.com/bahamas10/node-curl-cmd
- Owner: bahamas10
- Created: 2013-06-06T17:02:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-19T03:46:14.000Z (over 9 years ago)
- Last Synced: 2024-10-14T11:39:04.414Z (3 months ago)
- Language: JavaScript
- Size: 129 KB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
curl-cmd
========Generate a curl command line argument list from an http request object
Install
-------npm install curl-cmd
Example
-------Taken from the [Node.JS](http://nodejs.org) example for an HTTP get request
``` js
var http = require('http');
var curl = require('curl-cmd');var options = {
hostname: 'ifconfig.me',
port: 80,
path: '/ip',
method: 'GET'
};console.log('=> %s', curl.cmd(options));
http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
```The line `curl.cmd(options)` is the interesting part as that will generate
the curl command seen in the output```
=> curl -X GET http://ifconfig.me:80/ip
STATUS: 200
HEADERS: {"date":"Thu, 06 Jun 2013 16:56:30 GMT","server":"Apache","vary":"Accept-Encoding","connection":"close","transfer-encoding":"chunked","content-type":"text/plain"}
BODY: 8.8.8.8
```### Simple Example
``` js
> var curl = require('curl-cmd')
undefined> curl.cmd('http://www.daveeddy.com/something')
'curl -X GET http://www.daveeddy.com/something'> curl.cmd({host: 'daveeddy.com', port: 8080, method: 'DELETE', path: '/data/something'})
'curl -X DELETE http://daveeddy.com:8080/data/something'> curl.cmd({host: 'daveeddy.com', port: 8080, method: 'DELETE', path: '/data/something', headers: { 'User-Agent': 'Internet Explorer'} })
'curl -X DELETE -H \'User-Agent: Internet Explorer\' http://daveeddy.com:8080/data/something'> curl.cmd({host: 'daveeddy.com', port: 8080, method: 'DELETE', path: '/data/something', headers: { 'User-Agent': 'Internet Explorer'}, auth: 'dave:secret' })
'curl -X DELETE -u dave:secret -H \'User-Agent: Internet Explorer\' http://daveeddy.com:8080/data/something'> curl.cmd({host: 'daveeddy.com', port: 8080, method: 'PUT', path: '/data/something', headers: { 'User-Agent': 'Internet Explorer'}, auth: 'dave:secret' }, {ssl: true, verbose: true})
'curl -X PUT -u dave:secret -H \'User-Agent: Internet Explorer\' -v https://daveeddy.com:8080/data/something'
```
Usage
-----Pass in a URI as a string, a `url.parsed()` object, or an object suitable for
making an HTTP request as the first argument to get the curl command.### `curl.cmd(options, curlopts={})`
This returns a stringified curl command suitable for running on the shell
### `curl.args(options, curlopts={})`
Same as above, except returns an array of separate arguments to use for the curl command
### `curlopts`
The optional second argument is used to pass options to curl
- `curlopts.ssl`: set to `true` to use HTTPS instead of HTTP, defaults to `false`
- `curlopts.verbose`: set to `true` to add `-v` to the curl command, defaults to `false`
- `curlopts.headers`: set to `true` to add `-i` to the curl command, defaults to `false`
- `curlopts.options`: an optional array of arguments to add to the curl command, defaults to `[]`License
-------MIT