fix response parsing (#2614)

* fix response parsing

* rfc: better parseResponse function
This commit is contained in:
Will Nelson
2018-06-20 15:11:47 -07:00
committed by Crawl
parent 99a9a813d7
commit 594363a05e

View File

@@ -1,5 +1,11 @@
const DiscordAPIError = require('../DiscordAPIError');
const { Events: { RATE_LIMIT } } = require('../../util/Constants');
const { Events: { RATE_LIMIT }, browser } = require('../../util/Constants');
function parseResponse(res) {
if (res.headers.get('content-type').startsWith('application/json')) return res.json();
if (browser) return res.blob();
return res.buffer();
}
class RequestHandler {
constructor(manager, handler) {
@@ -77,7 +83,7 @@ class RequestHandler {
}
if (res.ok) {
res.json().then(item.resolve, item.reject);
parseResponse(res).then(item.resolve, item.reject);
finish();
return;
}
@@ -95,7 +101,7 @@ class RequestHandler {
finish(1e3 + this.client.options.restTimeOffset);
}
} else {
res.json().then(data => {
parseResponse(res).then(data => {
item.reject(res.status >= 400 && res.status < 500 ?
new DiscordAPIError(item.path, data, item.method) : res);
}, item.reject);