Skip to content

Latest commit

 

History

History
114 lines (81 loc) · 2.32 KB

README.md

File metadata and controls

114 lines (81 loc) · 2.32 KB

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. Like -vvv, -k, -L and etc.

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)