From a9f2bff82a18c6a3afdee99e5830e1d7b4da65dc Mon Sep 17 00:00:00 2001 From: Almeida Date: Mon, 1 May 2023 21:08:45 +0100 Subject: [PATCH] refactor(ShardClientUtil): logic de-duplication (#9491) added docs to the `calculateShardId` function --- packages/discord.js/src/sharding/ShardClientUtil.js | 3 ++- packages/util/src/functions/calculateShardId.ts | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/discord.js/src/sharding/ShardClientUtil.js b/packages/discord.js/src/sharding/ShardClientUtil.js index e6ab02e46..edb799d01 100644 --- a/packages/discord.js/src/sharding/ShardClientUtil.js +++ b/packages/discord.js/src/sharding/ShardClientUtil.js @@ -1,6 +1,7 @@ 'use strict'; const process = require('node:process'); +const { calculateShardId } = require('@discordjs/util'); const { DiscordjsError, DiscordjsTypeError, ErrorCodes } = require('../errors'); const Events = require('../util/Events'); const { makeError, makePlainError } = require('../util/Util'); @@ -251,7 +252,7 @@ class ShardClientUtil { * @returns {number} */ static shardIdForGuildId(guildId, shardCount) { - const shard = Number(BigInt(guildId) >> 22n) % shardCount; + const shard = calculateShardId(guildId, shardCount); if (shard < 0) throw new DiscordjsError(ErrorCodes.ShardingShardMiscalculation, shard, guildId, shardCount); return shard; } diff --git a/packages/util/src/functions/calculateShardId.ts b/packages/util/src/functions/calculateShardId.ts index 8beae43e2..2e33e912d 100644 --- a/packages/util/src/functions/calculateShardId.ts +++ b/packages/util/src/functions/calculateShardId.ts @@ -1,3 +1,9 @@ +/** + * Calculates the shard id for a given guild id. + * + * @param guildId - The guild id to calculate the shard id for + * @param shardCount - The total number of shards + */ export function calculateShardId(guildId: string, shardCount: number) { - return Number((BigInt(guildId) >> 22n) % BigInt(shardCount)); + return Number(BigInt(guildId) >> 22n) % shardCount; }