mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
fix response parsing (#2614)
* fix response parsing * rfc: better parseResponse function
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user