New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

curl-generator

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

curl-generator

CurlGenerator is a **small** (~1kb), dependecy free, library to generate curl snippets. Currently it has only 1 API, but I'm open to suggestion on how to improve and to integrate with different http request libraries.

  • 0.4.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.9K
increased by8.87%
Maintainers
0
Weekly downloads
 
Created
Source

CurlGenerator

CurlGenerator is a small (~1kb), dependecy free, library to generate curl snippets. Currently it has only 1 API, but I'm open to suggestion on how to improve and to integrate with different http request libraries.

Getting started

install in your project

npm install curl-generator

Or you can download the file you need from the dist folder

Using it
import {CurlGenerator} from "curl-generator";

const curlSnippet = CurlGenerator({url: "https://jsonplaceholder.typicode.com/posts/1"}); 
// curlSnippet => curl "https://jsonplaceholder.typicode.com/posts/101"

If you are going to import it with in node via require

const CurlGenerator = require("curl-generator").CurlGenerator;
API

Currently the library export just CurlGenerator, and it's a function with just 1 object parameter with the following description:

/**
 * @param {string} url - the request url
 * @param {string} [param.method] - a value between ("GET" | "POST" | "PUT" | "PATCH" | "DELETE") it's case insensitive
 * @param {Object<string, string>} [param.headers] - an object containing the headers of the request
 * @param {Object} [body] - the body of the request
 */

Example of a more "andvanced" use

import {CurlGenerator} from "curl-generator";

const params = {
    url: "https://jsonplaceholder.typicode.com/posts",
    method: "POST",
    headers: {
        "Content-type": "application/json; charset=UTF-8"
    },
    body: {
        "id": "123-456-789",
        "key1": "value 1",
        "key2": `a "complex" value`
    }
}
const curlSnippet = CurlGenerator(params); 
// curlSnippet => curl "https://jsonplaceholder.typicode.com/posts" -X POST -H "Content-type: application/json; charset=UTF-8" -d "{\"id\":\"123-456-789\",\"key1\":\"value 1\",\"key2\":\"a \\\"complex\\\" value\"}"

You can also pass Curl options as additional options:

import {CurlGenerator} from "curl-generator";

const params = {
    url: "https://jsonplaceholder.typicode.com/posts/1"
}
const options = {
    output: "test.txt",
    silent: true
}
const curlSnippet = CurlGenerator(params, options); 
// curl "https://jsonplaceholder.typicode.com/posts/1" --output test.txt --silent

Currently the following options are supported (you can submit a PR if you need others):

NameType
compressedboolean
compressedSshboolean
failboolean
failEarlyboolean
headboolean
includeboolean
insecureboolean
ipv4boolean
ipv6boolean
listOnlyboolean
locationboolean
locationTrustedboolean
noKeepaliveboolean
outputstring
showErrorboolean
silentboolean
sslboolean
sslv2boolean
sslv3boolean
verboseboolean

Contributing

The library is written in typescript (it's my first typescript project so I'm very open to tips and suggestions) and it comes with 3 scripts Dev build with watch

npm run dev

Build bundle

npm run build

Test (I plan to move testing with jest if the library grows)

npm run test

The build generate three files:

  • dist/curl-generator.cjs.js A CommonJS bundle, suitable for use in Node.js, that requires the external dependency. This corresponds to the "main" field in package.json
  • dist/curl-generator.esm.js an ES module bundle, suitable for use in other people's libraries and applications, that imports the external dependency. This corresponds to the "module" field in package.json
  • dist/curl-generator.umd.js a UMD build, suitable for use in any environment (including the browser, as a <script> tag), that includes the external dependency. This corresponds to the "browser" field in package.json

Author and License

Alberto De Agostini MIT.

FAQs

Package last updated on 23 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc