perf: linear speed position getters (#9528)

* perf(Channel): linear speed position getter (#9497)

Co-authored-by: kyra <kyradiscord@gmail.com>

* perf(Role): linear speed position getter

---------

Co-authored-by: kyra <kyradiscord@gmail.com>
Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
Jaw0r3k
2023-09-06 12:24:19 +02:00
committed by GitHub
parent cb11c56a0b
commit 90ca02880a
3 changed files with 52 additions and 4 deletions

View File

@@ -14,6 +14,10 @@ let deprecationEmittedForSplitMessage = false;
let deprecationEmittedForRemoveMentions = false;
let deprecationEmittedForResolveAutoArchiveMaxLimit = false;
const TextSortableGroupTypes = ['GUILD_TEXT', 'GUILD_ANNOUCMENT', 'GUILD_FORUM'];
const VoiceSortableGroupTypes = ['GUILD_VOICE', 'GUILD_STAGE_VOICE'];
const CategorySortableGroupTypes = ['GUILD_CATEGORY'];
/**
* Contains various general-purpose utility methods.
*/
@@ -742,6 +746,31 @@ class Util extends null {
};
}
/**
* Gets an array of the channel types that can be moved in the channel group. For example, a GuildText channel would
* return an array containing the types that can be ordered within the text channels (always at the top), and a voice
* channel would return an array containing the types that can be ordered within the voice channels (always at the
* bottom).
* @param {ChannelType} type The type of the channel
* @returns {ChannelType[]}
* @ignore
*/
static getSortableGroupTypes(type) {
switch (type) {
case 'GUILD_TEXT':
case 'GUILD_ANNOUNCEMENT':
case 'GUILD_FORUM':
return TextSortableGroupTypes;
case 'GUILD_VOICE':
case 'GUILD_STAGE_VOICE':
return VoiceSortableGroupTypes;
case 'GUILD_CATEGORY':
return CategorySortableGroupTypes;
default:
return [type];
}
}
/**
* Calculates the default avatar index for a given user id.
* @param {Snowflake} userId - The user id to calculate the default avatar index for