
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
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 7,100 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.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.