-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
formbody.js
30 lines (25 loc) · 772 Bytes
/
formbody.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'use strict'
const fp = require('fastify-plugin')
const { parse: defaultParser } = require('fast-querystring')
function fastifyFormbody (fastify, options, next) {
const opts = Object.assign({ parser: defaultParser }, options)
if (typeof opts.parser !== 'function') {
next(new Error('parser must be a function'))
return
}
function contentParser (req, body, done) {
done(null, opts.parser(body.toString()))
}
fastify.addContentTypeParser(
'application/x-www-form-urlencoded',
{ parseAs: 'buffer', bodyLimit: opts.bodyLimit },
contentParser
)
next()
}
module.exports = fp(fastifyFormbody, {
fastify: '5.x',
name: '@fastify/formbody'
})
module.exports.default = fastifyFormbody
module.exports.fastifyFormbody = fastifyFormbody