![Namecheap Takes Down Polyfill.io Service Following Supply Chain Attack](https://cdn.sanity.io/images/cgdhsj6q/production/6af25114feaaac7179b18127c83327568ff592d1-1024x1024.webp?w=800&fit=max&auto=format)
Security News
Namecheap Takes Down Polyfill.io Service Following Supply Chain Attack
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
httpsnippet
Advanced tools
Readme
HTTP Request snippet generator for many languages.
Relies on the popular HAR format to import data and describe HTTP calls.
See it in action on companion service: APIembed
Currently the following output targets are supported:
install from source or through npm:
# to use in cli
npm install --global httpsnippet
# to use as a module
npm install httpsnippet
Usage: httpsnippet [options] <file>
Options:
-h, --help output usage information
-V, --version output the version number
-t, --target <target> target output
-c, --client [client] target client library
-o, --output <directory> write output to directory
-n, --output-name <name> output file name
process single file (assumes HAR Request Object Format):
{
"method": "POST",
"url": "http://mockbin.com/request",
"httpVersion": "HTTP/1.1",
"queryString": [
{ "name": "foo", "value": "bar" },
{ "name": "foo", "value": "baz" },
{ "name": "baz", "value": "abc" }
],
"headers": [
{ "name": "Accept", "value": "text/plain" },
{ "name": "Content-Type", "value": "application/json" },
{ "name": "X-Foo-Bar", "value": "Baz" }
],
"cookies": [
{ "name": "foo", "value": "bar" },
{ "name": "bar", "value": "baz" }
],
"postData": {
"mimeType": "application/json",
"text": "{\"foo\": \"bar\"}"
}
}
httpsnippet my-api-endpoint.json --target php --output ./snippets
$ tree snippets
snippets/
âââ my-api-endpoint.php
process multiple files:
httpsnippet /*.json --target node --client native --output ./snippets
$ tree sources/
sources/
âââ endpoint-1.json
âââ endpoint-2.json
âââ endpoint-3.json
$ tree snippets/
snippets/
âââ endpoint-1.js
âââ endpoint-2.js
âââ endpoint-3.js
var httpsnippet = require('httpsnippet');
var snippet = new httpsnippet({
method: 'GET',
url: 'http://mockbin.com/request'
});
// generate cURL output
console.log(snippet.convert('curl', {
indent: '\t';
}));
// generate Node.js output
console.log(snippet.convert('node'));
// generate PHP output
console.log(snippet.convert('php', 'curl'));
At the heart of this module is the HAR Request object as the http request description format, please review some of the sample JSON HAR Request objects in test fixtures, or read the HAR Docs for more details.
output targets are simple modules that expose a constructor (which handles the transformation) and a meta info
property.
module.exports = function (opts) {
// optionally process `opts` object for target specific configuration
//
// process `this.source` object
//
// return processed output as string
};
module.exports.info = {
key: 'curl',
title: 'cURL',
link: 'http://curl.haxx.se/',
description: 'curl is a command line tool and library for transferring data with URL syntax',
extname: '.sh'
};
Option | Default | Description |
---|---|---|
short | false | use short form of cURL CLI options |
indent | | line break & indent output value, set to false to disable line breaks |
Option | Default | Description |
---|---|---|
errorChecking | false | add error checking for request, response and body |
printBody | true | include code to print the body as a string |
timeout | -1 | sets a request timeout in seconds (requires go 1.3+) |
Option | Default | Description |
---|---|---|
body | false | only the response body is printed |
headers | false | only the response headers are printed |
verbose | false | print the whole HTTP exchange (request and response) |
print | false | selects parts of the HTTP exchange, e.g. --print=Hh (see httpie docs) |
cert | false | use a client side certificate (see httpie docs) |
verify | false | server SSL certificate verification (see httpie docs) |
pretty | false | syntax highlighting (see httpie docs) |
style | false | syntax highlighting (see httpie docs) |
timeout | false | overwrite the default 30s timeout |
short | false | use short form of cURL CLI options |
indent | | line break & indent output value, set to false to disable line breaks |
Option | Default | Description |
---|---|---|
short | false | use short form of cURL CLI options |
indent | | line break & indent output value, set to false to disable line breaks |
verbose | false | by default, --quiet is always used, unless verbose is set to true |
Option | Default | Description |
---|---|---|
timeout | 10 | NSURLRequest timeout |
indent | | line break & indent output value, set to false to disable line |
pretty | true | indent extracted headers/parameters in NSDictionary litterals |
Have a bug or a feature request? Please first read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.
Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development.
More over, if your pull request contains JavaScript patches or features, you must include relevant unit tests.
Editor preferences are available in the editor config for easy use in common text editors. Read more and download plugins at http://editorconfig.org.
For transparency into our release cycle and in striving to maintain backward compatibility, this project is maintained under the Semantic Versioning guidelines. Sometimes we screw up, but we'll adhere to these rules whenever possible.
Releases will be numbered with the following format:
<major>.<minor>.<patch>
And constructed with the following guidelines:
For more information on SemVer, please visit http://semver.org/.
Licensed under The MIT License.
FAQs
HTTP Request snippet generator for *most* languages
The npm package httpsnippet receives a total of 43,078 weekly downloads. As such, httpsnippet popularity was classified as popular.
We found that httpsnippet demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.
Security News
A JavaScript library maintainer is under fire after merging a controversial PR to support legacy versions of Node.js.