1 | var middleware = require('./middleware')
|
2 | var isStream = require('../isStream')
|
3 | var setBodyToString = require('../setBodyToString')
|
4 | var setHeaderTo = require('../setHeaderTo')
|
5 | var shouldParseAs = require('../shouldParseAs')
|
6 | var streamToString = require('../streamToString')
|
7 | var querystringLite = require('../querystring-lite')
|
8 |
|
9 | module.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 | })
|