mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
src: Replace instanceof Array checks with Array.isArray and instanceof Buffer with Buffer.isBuffer (#3227)
* src: Replace instanceof Array checks with Array.isArray * src: Buffer.isBuffer instead of instanceof Buffer
This commit is contained in:
@@ -22,7 +22,7 @@ exports.pack = erlpack ? erlpack.pack : JSON.stringify;
|
|||||||
|
|
||||||
exports.unpack = data => {
|
exports.unpack = data => {
|
||||||
if (!erlpack || data[0] === '{') return JSON.parse(data);
|
if (!erlpack || data[0] === '{') return JSON.parse(data);
|
||||||
if (!(data instanceof Buffer)) data = Buffer.from(new Uint8Array(data));
|
if (!Buffer.isBuffer(data)) data = Buffer.from(new Uint8Array(data));
|
||||||
return erlpack.unpack(data);
|
return erlpack.unpack(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class Client extends BaseClient {
|
|||||||
if (this.options.totalShardCount === DefaultOptions.totalShardCount) {
|
if (this.options.totalShardCount === DefaultOptions.totalShardCount) {
|
||||||
if ('TOTAL_SHARD_COUNT' in data) {
|
if ('TOTAL_SHARD_COUNT' in data) {
|
||||||
this.options.totalShardCount = Number(data.TOTAL_SHARD_COUNT);
|
this.options.totalShardCount = Number(data.TOTAL_SHARD_COUNT);
|
||||||
} else if (this.options.shards instanceof Array) {
|
} else if (Array.isArray(this.options.shards)) {
|
||||||
this.options.totalShardCount = this.options.shards.length;
|
this.options.totalShardCount = this.options.shards.length;
|
||||||
} else {
|
} else {
|
||||||
this.options.totalShardCount = this.options.shardCount;
|
this.options.totalShardCount = this.options.shardCount;
|
||||||
@@ -365,7 +365,7 @@ class Client extends BaseClient {
|
|||||||
if (options.shardCount !== 'auto' && (typeof options.shardCount !== 'number' || isNaN(options.shardCount))) {
|
if (options.shardCount !== 'auto' && (typeof options.shardCount !== 'number' || isNaN(options.shardCount))) {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'shardCount', 'a number or "auto"');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'shardCount', 'a number or "auto"');
|
||||||
}
|
}
|
||||||
if (options.shards && !(options.shards instanceof Array)) {
|
if (options.shards && !Array.isArray(options.shards)) {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'shards', 'a number or array');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'shards', 'a number or array');
|
||||||
}
|
}
|
||||||
if (options.shards && !options.shards.length) throw new RangeError('CLIENT_INVALID_PROVIDED_SHARDS');
|
if (options.shards && !options.shards.length) throw new RangeError('CLIENT_INVALID_PROVIDED_SHARDS');
|
||||||
@@ -385,7 +385,7 @@ class Client extends BaseClient {
|
|||||||
if (typeof options.disableEveryone !== 'boolean') {
|
if (typeof options.disableEveryone !== 'boolean') {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'disableEveryone', 'a boolean');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'disableEveryone', 'a boolean');
|
||||||
}
|
}
|
||||||
if (!(options.partials instanceof Array)) {
|
if (!Array.isArray(options.partials)) {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'partials', 'an Array');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'partials', 'an Array');
|
||||||
}
|
}
|
||||||
if (typeof options.restWsBridgeTimeout !== 'number' || isNaN(options.restWsBridgeTimeout)) {
|
if (typeof options.restWsBridgeTimeout !== 'number' || isNaN(options.restWsBridgeTimeout)) {
|
||||||
@@ -394,7 +394,7 @@ class Client extends BaseClient {
|
|||||||
if (typeof options.restSweepInterval !== 'number' || isNaN(options.restSweepInterval)) {
|
if (typeof options.restSweepInterval !== 'number' || isNaN(options.restSweepInterval)) {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'restSweepInterval', 'a number');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'restSweepInterval', 'a number');
|
||||||
}
|
}
|
||||||
if (!(options.disabledEvents instanceof Array)) {
|
if (!Array.isArray(options.disabledEvents)) {
|
||||||
throw new TypeError('CLIENT_INVALID_OPTION', 'disabledEvents', 'an Array');
|
throw new TypeError('CLIENT_INVALID_OPTION', 'disabledEvents', 'an Array');
|
||||||
}
|
}
|
||||||
if (typeof options.retryLimit !== 'number' || isNaN(options.retryLimit)) {
|
if (typeof options.retryLimit !== 'number' || isNaN(options.retryLimit)) {
|
||||||
|
|||||||
@@ -160,8 +160,9 @@ class WebSocketManager extends EventEmitter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.client.options.shards instanceof Array) {
|
const { shards } = this.client.options;
|
||||||
const { shards } = this.client.options;
|
|
||||||
|
if (Array.isArray(shards)) {
|
||||||
this.totalShards = shards.length;
|
this.totalShards = shards.length;
|
||||||
this.debug(`Spawning shards: ${shards.join(', ')}`);
|
this.debug(`Spawning shards: ${shards.join(', ')}`);
|
||||||
this.shardQueue = new Set(shards.map(id => new WebSocketShard(this, id)));
|
this.shardQueue = new Set(shards.map(id => new WebSocketShard(this, id)));
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class GuildEmojiRoleStore extends Collection {
|
|||||||
*/
|
*/
|
||||||
add(roleOrRoles) {
|
add(roleOrRoles) {
|
||||||
if (roleOrRoles instanceof Collection) return this.add(roleOrRoles.keyArray());
|
if (roleOrRoles instanceof Collection) return this.add(roleOrRoles.keyArray());
|
||||||
if (!(roleOrRoles instanceof Array)) return this.add([roleOrRoles]);
|
if (!Array.isArray(roleOrRoles)) return this.add([roleOrRoles]);
|
||||||
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
||||||
|
|
||||||
if (roleOrRoles.includes(null)) {
|
if (roleOrRoles.includes(null)) {
|
||||||
@@ -52,7 +52,7 @@ class GuildEmojiRoleStore extends Collection {
|
|||||||
*/
|
*/
|
||||||
remove(roleOrRoles) {
|
remove(roleOrRoles) {
|
||||||
if (roleOrRoles instanceof Collection) return this.remove(roleOrRoles.keyArray());
|
if (roleOrRoles instanceof Collection) return this.remove(roleOrRoles.keyArray());
|
||||||
if (!(roleOrRoles instanceof Array)) return this.remove([roleOrRoles]);
|
if (!Array.isArray(roleOrRoles)) return this.remove([roleOrRoles]);
|
||||||
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolveID(r));
|
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolveID(r));
|
||||||
|
|
||||||
if (roleOrRoles.includes(null)) {
|
if (roleOrRoles.includes(null)) {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class GuildMemberRoleStore extends Collection {
|
|||||||
* @returns {Promise<GuildMember>}
|
* @returns {Promise<GuildMember>}
|
||||||
*/
|
*/
|
||||||
async add(roleOrRoles, reason) {
|
async add(roleOrRoles, reason) {
|
||||||
if (roleOrRoles instanceof Collection || roleOrRoles instanceof Array) {
|
if (roleOrRoles instanceof Collection || Array.isArray(roleOrRoles)) {
|
||||||
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
||||||
if (roleOrRoles.includes(null)) {
|
if (roleOrRoles.includes(null)) {
|
||||||
throw new TypeError('INVALID_TYPE', 'roles',
|
throw new TypeError('INVALID_TYPE', 'roles',
|
||||||
@@ -96,7 +96,7 @@ class GuildMemberRoleStore extends Collection {
|
|||||||
* @returns {Promise<GuildMember>}
|
* @returns {Promise<GuildMember>}
|
||||||
*/
|
*/
|
||||||
async remove(roleOrRoles, reason) {
|
async remove(roleOrRoles, reason) {
|
||||||
if (roleOrRoles instanceof Collection || roleOrRoles instanceof Array) {
|
if (roleOrRoles instanceof Collection || Array.isArray(roleOrRoles)) {
|
||||||
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
roleOrRoles = roleOrRoles.map(r => this.guild.roles.resolve(r));
|
||||||
if (roleOrRoles.includes(null)) {
|
if (roleOrRoles.includes(null)) {
|
||||||
throw new TypeError('INVALID_TYPE', 'roles',
|
throw new TypeError('INVALID_TYPE', 'roles',
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ class APIMessage {
|
|||||||
split() {
|
split() {
|
||||||
if (!this.data) this.resolveData();
|
if (!this.data) this.resolveData();
|
||||||
|
|
||||||
if (!(this.data.content instanceof Array)) return [this];
|
if (!Array.isArray(this.data.content)) return [this];
|
||||||
|
|
||||||
const apiMessages = [];
|
const apiMessages = [];
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@ class APIMessage {
|
|||||||
* @returns {MessageOptions|WebhookMessageOptions}
|
* @returns {MessageOptions|WebhookMessageOptions}
|
||||||
*/
|
*/
|
||||||
static transformOptions(content, options, extra = {}, isWebhook = false) {
|
static transformOptions(content, options, extra = {}, isWebhook = false) {
|
||||||
if (!options && typeof content === 'object' && !(content instanceof Array)) {
|
if (!options && typeof content === 'object' && !Array.isArray(content)) {
|
||||||
options = content;
|
options = content;
|
||||||
content = undefined;
|
content = undefined;
|
||||||
}
|
}
|
||||||
@@ -300,10 +300,10 @@ class APIMessage {
|
|||||||
return { content, files: [options], ...extra };
|
return { content, files: [options], ...extra };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options instanceof Array) {
|
if (Array.isArray(options)) {
|
||||||
const [embeds, files] = this.partitionMessageAdditions(options);
|
const [embeds, files] = this.partitionMessageAdditions(options);
|
||||||
return isWebhook ? { content, embeds, files, ...extra } : { content, embed: embeds[0], files, ...extra };
|
return isWebhook ? { content, embeds, files, ...extra } : { content, embed: embeds[0], files, ...extra };
|
||||||
} else if (content instanceof Array) {
|
} else if (Array.isArray(content)) {
|
||||||
const [embeds, files] = this.partitionMessageAdditions(content);
|
const [embeds, files] = this.partitionMessageAdditions(content);
|
||||||
if (embeds.length || files.length) {
|
if (embeds.length || files.length) {
|
||||||
return isWebhook ? { embeds, files, ...extra } : { embed: embeds[0], files, ...extra };
|
return isWebhook ? { embeds, files, ...extra } : { embed: embeds[0], files, ...extra };
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class Webhook {
|
|||||||
apiMessage = content.resolveData();
|
apiMessage = content.resolveData();
|
||||||
} else {
|
} else {
|
||||||
apiMessage = APIMessage.create(this, content, options).resolveData();
|
apiMessage = APIMessage.create(this, content, options).resolveData();
|
||||||
if (apiMessage.data.content instanceof Array) {
|
if (Array.isArray(apiMessage.data.content)) {
|
||||||
return Promise.all(apiMessage.split().map(this.send.bind(this)));
|
return Promise.all(apiMessage.split().map(this.send.bind(this)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class TextBasedChannel {
|
|||||||
apiMessage = content.resolveData();
|
apiMessage = content.resolveData();
|
||||||
} else {
|
} else {
|
||||||
apiMessage = APIMessage.create(this, content, options).resolveData();
|
apiMessage = APIMessage.create(this, content, options).resolveData();
|
||||||
if (apiMessage.data.content instanceof Array) {
|
if (Array.isArray(apiMessage.data.content)) {
|
||||||
return Promise.all(apiMessage.split().map(this.send.bind(this)));
|
return Promise.all(apiMessage.split().map(this.send.bind(this)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -296,7 +296,7 @@ class TextBasedChannel {
|
|||||||
* .catch(console.error);
|
* .catch(console.error);
|
||||||
*/
|
*/
|
||||||
async bulkDelete(messages, filterOld = false) {
|
async bulkDelete(messages, filterOld = false) {
|
||||||
if (messages instanceof Array || messages instanceof Collection) {
|
if (Array.isArray(messages) || messages instanceof Collection) {
|
||||||
let messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id || m);
|
let messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id || m);
|
||||||
if (filterOld) {
|
if (filterOld) {
|
||||||
messageIDs = messageIDs.filter(id =>
|
messageIDs = messageIDs.filter(id =>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class BitField {
|
|||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
has(bit) {
|
has(bit) {
|
||||||
if (bit instanceof Array) return bit.every(p => this.has(p));
|
if (Array.isArray(bit)) return bit.every(p => this.has(p));
|
||||||
bit = this.constructor.resolve(bit);
|
bit = this.constructor.resolve(bit);
|
||||||
return (this.bitfield & bit) === bit;
|
return (this.bitfield & bit) === bit;
|
||||||
}
|
}
|
||||||
@@ -44,7 +44,7 @@ class BitField {
|
|||||||
* @returns {string[]}
|
* @returns {string[]}
|
||||||
*/
|
*/
|
||||||
missing(bits, ...hasParams) {
|
missing(bits, ...hasParams) {
|
||||||
if (!(bits instanceof Array)) bits = new this.constructor(bits).toArray(false);
|
if (!Array.isArray(bits)) bits = new this.constructor(bits).toArray(false);
|
||||||
return bits.filter(p => !this.has(p, ...hasParams));
|
return bits.filter(p => !this.has(p, ...hasParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ class BitField {
|
|||||||
static resolve(bit = 0) {
|
static resolve(bit = 0) {
|
||||||
if (typeof bit === 'number' && bit >= 0) return bit;
|
if (typeof bit === 'number' && bit >= 0) return bit;
|
||||||
if (bit instanceof BitField) return bit.bitfield;
|
if (bit instanceof BitField) return bit.bitfield;
|
||||||
if (bit instanceof Array) return bit.map(p => this.resolve(p)).reduce((prev, p) => prev | p, 0);
|
if (Array.isArray(bit)) return bit.map(p => this.resolve(p)).reduce((prev, p) => prev | p, 0);
|
||||||
if (typeof bit === 'string') return this.FLAGS[bit];
|
if (typeof bit === 'string') return this.FLAGS[bit];
|
||||||
throw new RangeError('BITFIELD_INVALID');
|
throw new RangeError('BITFIELD_INVALID');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class DataResolver {
|
|||||||
* @returns {?string}
|
* @returns {?string}
|
||||||
*/
|
*/
|
||||||
static resolveBase64(data) {
|
static resolveBase64(data) {
|
||||||
if (data instanceof Buffer) return `data:image/jpg;base64,${data.toString('base64')}`;
|
if (Buffer.isBuffer(data)) return `data:image/jpg;base64,${data.toString('base64')}`;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ class DataResolver {
|
|||||||
* @returns {Promise<Buffer>}
|
* @returns {Promise<Buffer>}
|
||||||
*/
|
*/
|
||||||
static resolveFile(resource) {
|
static resolveFile(resource) {
|
||||||
if (!browser && resource instanceof Buffer) return Promise.resolve(resource);
|
if (!browser && Buffer.isBuffer(resource)) return Promise.resolve(resource);
|
||||||
if (browser && resource instanceof ArrayBuffer) return Promise.resolve(Util.convertToBuffer(resource));
|
if (browser && resource instanceof ArrayBuffer) return Promise.resolve(Util.convertToBuffer(resource));
|
||||||
|
|
||||||
if (typeof resource === 'string') {
|
if (typeof resource === 'string') {
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ class Util {
|
|||||||
*/
|
*/
|
||||||
static resolveString(data) {
|
static resolveString(data) {
|
||||||
if (typeof data === 'string') return data;
|
if (typeof data === 'string') return data;
|
||||||
if (data instanceof Array) return data.join('\n');
|
if (Array.isArray(data)) return data.join('\n');
|
||||||
return String(data);
|
return String(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ class Util {
|
|||||||
if (color === 'RANDOM') return Math.floor(Math.random() * (0xFFFFFF + 1));
|
if (color === 'RANDOM') return Math.floor(Math.random() * (0xFFFFFF + 1));
|
||||||
if (color === 'DEFAULT') return 0;
|
if (color === 'DEFAULT') return 0;
|
||||||
color = Colors[color] || parseInt(color.replace('#', ''), 16);
|
color = Colors[color] || parseInt(color.replace('#', ''), 16);
|
||||||
} else if (color instanceof Array) {
|
} else if (Array.isArray(color)) {
|
||||||
color = (color[0] << 16) + (color[1] << 8) + color[2];
|
color = (color[0] << 16) + (color[1] << 8) + color[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user