Tiniest body parser in the universe. Built for modern Node.js.
Check out deno-libs/parsec for Deno port.
Features
โฉ built withasync
/await
๐ JSON / raw / urlencoded data support๐ฆ tiny package size (728B)- ๐ฅ no dependencies
โก tinyhttp and Express support
Install
# pnpm
pnpm i milliparsec
# yarn
yarn add milliparsec
# npm
npm i milliparsec
Usage
Basic example
Use a middleware inside a server:
import { createServer } from 'http'
import { json } from 'milliparsec'
const server = createServer(async (req: ReqWithBody, res) => {
await json()(req, res, (err) => void err && console.log(err))
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body))
})
Web frameworks integration
tinyhttp
import { App } from '@tinyhttp/app'
import { urlencoded } from 'milliparsec'
new App()
.use(urlencoded())
.post('/', (req, res) => void res.send(req.body))
.listen(3000, () => console.log(`Started on http://localhost:3000`))
API
raw(req, res, cb)
Minimal body parsing without any formatting.
text(req, res, cb)
Converts request body to string.
urlencoded(req, res, cb)
Parses request body using new URLSearchParams
.
json(req, res, cb)
Parses request body using JSON.parse
.
custom(fn)(req, res, cb)
Custom function for parsec
.
// curl -d "this text must be uppercased" localhost
await custom(
req,
(d) => d.toUpperCase(),
(err) => {}
)
res.end(req.body) // "THIS TEXT MUST BE UPPERCASED"
What is "parsec"?
The parsec is a unit of length used to measure large distances to astronomical objects outside the Solar System.