mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 17:13:31 +01:00
zlib stream compression (#2028)
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
const { browser } = require('./util/Constants');
|
||||
const zlib = require('zlib');
|
||||
const querystring = require('querystring');
|
||||
try {
|
||||
var erlpack = require('erlpack');
|
||||
if (!erlpack.pack) erlpack = null;
|
||||
} catch (err) {} // eslint-disable-line no-empty
|
||||
|
||||
if (browser) {
|
||||
exports.WebSocket = window.WebSocket; // eslint-disable-line no-undef
|
||||
@@ -12,25 +15,14 @@ if (browser) {
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
var erlpack = require('erlpack');
|
||||
if (!erlpack.pack) erlpack = null;
|
||||
} catch (err) {} // eslint-disable-line no-empty
|
||||
|
||||
exports.encoding = erlpack ? 'etf' : 'json';
|
||||
|
||||
exports.pack = erlpack ? erlpack.pack : JSON.stringify;
|
||||
|
||||
exports.unpack = data => {
|
||||
if (Array.isArray(data)) data = Buffer.concat(data);
|
||||
if (!browser && data instanceof ArrayBuffer) data = Buffer.from(new Uint8Array(data));
|
||||
|
||||
if (erlpack && typeof data !== 'string') {
|
||||
return erlpack.unpack(data);
|
||||
} else if (data instanceof ArrayBuffer || (!browser && data instanceof Buffer)) {
|
||||
data = zlib.inflateSync(data).toString();
|
||||
}
|
||||
return JSON.parse(data);
|
||||
if (!erlpack || data[0] === '{') return JSON.parse(data);
|
||||
if (!(data instanceof Buffer)) data = Buffer.from(new Uint8Array(data));
|
||||
return erlpack.unpack(data);
|
||||
};
|
||||
|
||||
exports.create = (gateway, query = {}, ...args) => {
|
||||
|
||||
Reference in New Issue
Block a user