UNPKG

1.04 kBJavaScriptView Raw
1var middleware = require('./middleware')
2var isStream = require('../isStream')
3var setBodyToString = require('../setBodyToString')
4var setHeaderTo = require('../setHeaderTo')
5var shouldParseAs = require('../shouldParseAs')
6var streamToString = require('../streamToString')
7var querystringLite = require('../querystring-lite')
8
9module.exports = middleware('form', function (request, next) {
10 if (request.options.form && request.body instanceof Object && !isStream(request.body)) {
11 var querystring = request.options.qs || querystringLite
12 setBodyToString(request, querystring.stringify(request.body))
13 setHeaderTo(request, 'content-type', 'application/x-www-form-urlencoded')
14 }
15
16 return next().then(function (response) {
17 if (shouldParseAs(response, 'form', request)) {
18 return streamToString(response.body).then(function (body) {
19 var querystring = request.options.qs || querystringLite
20 response.body = querystring.parse(body)
21 return response
22 })
23 } else {
24 return response
25 }
26 })
27})