Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
form-auto-content
Advanced tools
Build a form payload without caring if it should be application/x-www-form-urlencoded
or multipart/form-data
.
It works with Fastify
and light-my-request
too!
npm install form-auto-content
This module will transform your JSON to a payload ready to submit to an HTTP server!
The autosense feature will check if there is a stream
or a buffer
as input and it will act accordingly returning a multipart/form-data
stream; otherwise it will create a x-www-form-urlencoded
string.
The module return a JSON like this:
{
payload: Stream, // the data Stream
headers: {} // a JSON with the `content-type` field set
}
x-www-form-urlencoded
const formAutoContent = require('form-auto-content')
const myForm = formAutoContent({
field1: 'value1',
field2: ['value2', 'value2.2'] // array are supported too!!
})
myForm.payload // Stream of the string in application/x-www-form-urlencoded format
myForm.headers // JSON with the `content-type` field set
multipart/form-data
const formAutoContent = require('form-auto-content')
const myForm = formAutoContent({
field1: 'value1',
field2: ['value2', 'value2.2'], // array are supported too!!
myFile: fs.createReadStream('the-file.xml'),
multipleFiles: [fs.createReadStream('file1.xml'), fs.createReadStream('file2.xml')],
wowBuffer: Buffer.from('a long string'),
// the file options are supported too:
myRenamedFile: {
value: fs.createReadStream('./foo.md'),
options: {
filename: 'bar.md',
contentType: 'text/markdown'
}
},
// also in arrays!
renamedArray: [
{
value: fs.createReadStream('./one.json'),
options: { filename: 'foo.json' }
},
{
value: fs.createReadStream('./two.json'),
options: { filename: 'bar.json' }
}
]
})
myForm.payload // Stream in multipart/form-data format
myForm.headers // JSON with the `content-type` field set to multipart/form-data
To customize the output field names, add an extra option object with the payload
and headers
string!
const formAutoContent = require('form-auto-content')
const option = { payload: 'body', headers: 'head' }
const myCustomForm = formAutoContent({
field1: 'value1',
field2: ['value2', 'value2.2'] // array are supported too!!
}, option)
myForm.body // Stream of the string in application/x-www-form-urlencoded format
myForm.head // JSON with the `content-type` field set
This module ships with a handwritten TypeScript declaration file for TS support. The declaration exports a single function.
import formAutoContent from 'form-auto-content';
When an options object is provided, the result types will be accurately inferred:
import formAutoContent from 'form-auto-content';
const option = {
payload: 'body',
headers: 'head',
forceMultiPart: true,
} as const;
const myCustomForm = formAutoContent({
field1: 'value1',
field2: ['value2']
}, option);
myCustomForm.body // ok
myCustomForm.head // ok
myCustomForm.payload // Typescript error: property 'payload' does not exists in type...
Licensed under MIT.
FAQs
Build a form without headache
The npm package form-auto-content receives a total of 4,038 weekly downloads. As such, form-auto-content popularity was classified as popular.
We found that form-auto-content demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.