aboutsummaryrefslogtreecommitdiff
path: root/node_modules/node-fetch/lib/body.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-fetch/lib/body.js')
-rw-r--r--node_modules/node-fetch/lib/body.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/node_modules/node-fetch/lib/body.js b/node_modules/node-fetch/lib/body.js
index e7bbe1dac..19bc003fe 100644
--- a/node_modules/node-fetch/lib/body.js
+++ b/node_modules/node-fetch/lib/body.js
@@ -39,13 +39,14 @@ function Body(body, opts) {
*/
Body.prototype.json = function() {
- // for 204 No Content response, buffer will be empty, parsing it will throw error
- if (this.status === 204) {
- return Body.Promise.resolve({});
- }
+ var self = this;
return this._decode().then(function(buffer) {
- return JSON.parse(buffer.toString());
+ try {
+ return JSON.parse(buffer.toString());
+ } catch (err) {
+ return Body.Promise.reject(new FetchError('invalid json response body at ' + self.url + ' reason: ' + err.message, 'invalid-json'));
+ }
});
};