UNPKG

922 BJavaScriptView Raw
1var responseBodyTypes = {
2 json: function (response) {
3 return contentTypeIs(response, 'application/json')
4 },
5 text: function (response) {
6 return contentTypeIsText(response) || contentTypeIs(response, 'application/javascript')
7 },
8 form: function (response) {
9 return contentTypeIs(response, 'application/x-www-form-urlencoded')
10 },
11 stream: function () {
12 return false
13 }
14}
15
16function contentTypeIsText (response) {
17 return contentTypeIs(response, 'text/.*')
18}
19
20function contentTypeIs (response, expectedContentType) {
21 var re = new RegExp('^\\s*' + expectedContentType + '\\s*($|;)')
22 return re.test(response.headers['content-type'])
23}
24
25module.exports = function (response, type, request) {
26 if (request.options.responseBody) {
27 return type === request.options.responseBody
28 } else {
29 var bodyType = responseBodyTypes[type]
30 if (bodyType) {
31 return bodyType(response)
32 }
33 }
34}