From 85413481edb0d9b5e6bc8d629f2368dfab6b04a7 Mon Sep 17 00:00:00 2001 From: Pascal Date: Tue, 6 Mar 2018 21:48:34 +0100 Subject: [PATCH] fix(DataResolver): always resolve with buffer when resolving urls Fixes: #2379 --- src/util/DataResolver.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/util/DataResolver.js b/src/util/DataResolver.js index 91a698893..a9f64dbce 100644 --- a/src/util/DataResolver.js +++ b/src/util/DataResolver.js @@ -87,26 +87,22 @@ class DataResolver { if (browser && resource instanceof ArrayBuffer) return Promise.resolve(Util.convertToBuffer(resource)); if (typeof resource === 'string') { - return new Promise((resolve, reject) => { - if (/^https?:\/\//.test(resource)) { - snekfetch.get(resource) - .end((err, res) => { - if (err) return reject(err); - if (!(res.body instanceof Buffer)) return reject(new TypeError('REQ_BODY_TYPE')); - return resolve(res.body); - }); - } else { + if (/^https?:\/\//.test(resource)) { + return snekfetch.get(resource).then(res => res.body instanceof Buffer ? res.body : Buffer.from(res.text)); + } else { + return new Promise((resolve, reject) => { const file = browser ? resource : path.resolve(resource); fs.stat(file, (err, stats) => { if (err) return reject(err); if (!stats || !stats.isFile()) return reject(new DiscordError('FILE_NOT_FOUND', file)); fs.readFile(file, (err2, data) => { - if (err2) reject(err2); else resolve(data); + if (err2) reject(err2); + else resolve(data); }); return null; }); - } - }); + }); + } } else if (resource.pipe && typeof resource.pipe === 'function') { return new Promise((resolve, reject) => { const buffers = [];