mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33: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 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 {
|
class RequestHandler {
|
||||||
constructor(manager, handler) {
|
constructor(manager, handler) {
|
||||||
@@ -77,7 +83,7 @@ class RequestHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
res.json().then(item.resolve, item.reject);
|
parseResponse(res).then(item.resolve, item.reject);
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -95,7 +101,7 @@ class RequestHandler {
|
|||||||
finish(1e3 + this.client.options.restTimeOffset);
|
finish(1e3 + this.client.options.restTimeOffset);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
res.json().then(data => {
|
parseResponse(res).then(data => {
|
||||||
item.reject(res.status >= 400 && res.status < 500 ?
|
item.reject(res.status >= 400 && res.status < 500 ?
|
||||||
new DiscordAPIError(item.path, data, item.method) : res);
|
new DiscordAPIError(item.path, data, item.method) : res);
|
||||||
}, item.reject);
|
}, item.reject);
|
||||||
|
|||||||
Reference in New Issue
Block a user