format-curl

Format curl execution from request params

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
format-curl
2.2.14 years ago5 years agoMinified + gzip package size for format-curl in KB

Readme

format-curl
Format curl execution from request params

Installation

from npm
npm install --save format-curl

from unpkg
<script src="https://unpkg.com/format-curl@latest/dist/index.js"></script>
<!-- or -->
<script src="https://unpkg.com/format-curl@latest/dist/index.min.js"></script>
<!-- example -->
<script type="text/javascript">
const curl = window.formatCurl({
    href: 'http://my-host/pathname/',
},
{
    args: ['-v'],
    headers: {
        'accept': '*/*',
    },
});

console.log(curl);
</script>

Usage

import curl from 'format-curl';

const url = 'https://myhost.com?param=value';
const options = {
    headers: {
        'x-header': 'test',
        'x-header2': 'test2'
    },
    body: JSON.stringify({
        param: '123'
    }),
    method: 'PUT',
    args: ['-vvv']
};

console.log(curl(url, options));
// curl -vvv "https://myhost.com?param=value" -H "x-header: test" -H "x-header2: test2" --data '{"param":"123"}' -X PUT

See test/index.test.js for more examples!

API

curl(url, options)

Returns a string with a resulting curl command.
url
Type: string Object
The URL to request, as a string, a WHATWG URL or https.request options.
In case you provide partial or empty url it will use base url http://localhost/ to fullfil it.
options
Type: Object
headers
Type: Object
Request headers.
json
Type: 'boolean'
Helper for json format specific headers. Adds accept and content-type headers with application/json value in case they aren't presented.
method
Type: string
Request method.
body
Type: string Object
Request body. If you provide an object, it will be serialized via JSON.stringify.
args
Type: Array
Curl arguments.

Publish

Build package and publish under beta tag:
npm run build && npm publish --tag beta

Now you can install it using published version (npm install format-curl@<version>) and test it. When you finish, add a latest tag to the published version:
npm dist-tag rm format-curl beta
npm dist-tag add format-curl@<version> latest

TODO

  • user-argent, cookies as a params (and as curl arguments)