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 |
|
8 | module.exports = middleware('json', function (request, next) {
|
9 | if (request.body instanceof Object && !isStream(request.body)) {
|
10 | setBodyToString(request, JSON.stringify(request.body))
|
11 | setHeaderTo(request, 'content-type', 'application/json')
|
12 | }
|
13 |
|
14 | setHeaderTo(request, 'accept', 'application/json')
|
15 |
|
16 | return next().then(function (response) {
|
17 | if (shouldParseAs(response, 'json', request)) {
|
18 | return streamToString(response.body).then(function (jsonString) {
|
19 | response.body = JSON.parse(jsonString, request.options.jsonReviver)
|
20 | return response
|
21 | })
|
22 | } else {
|
23 | return response
|
24 | }
|
25 | })
|
26 | })
|