mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 17:30:07 +00:00
Merge pull request #1007 from discordeno/change-to-object-keys
change: structure loops use Object.keys
This commit is contained in:
@@ -107,11 +107,11 @@ export async function createDiscordenoChannel(data: Channel, guildId?: bigint) {
|
||||
const { lastPinTimestamp, permissionOverwrites = [], ...rest } = data;
|
||||
|
||||
const props: Record<string, PropertyDescriptor> = {};
|
||||
Object.entries(rest).forEach(([key, value]) => {
|
||||
(Object.keys(rest) as (keyof typeof rest)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running forEach loop in createDiscordenoChannel function.`);
|
||||
|
||||
props[key] = createNewProp(
|
||||
CHANNEL_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value
|
||||
CHANNEL_SNOWFLAKES.includes(key) ? (rest[key] ? snowflakeToBigint(rest[key] as string) : undefined) : rest[key]
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -268,17 +268,19 @@ export async function createDiscordenoGuild(data: Guild, shardId: number) {
|
||||
);
|
||||
|
||||
const props: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||
for (const [key, value] of Object.entries(rest)) {
|
||||
(Object.keys(rest) as (keyof typeof rest)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running for of loop in createDiscordenoGuild function.`);
|
||||
|
||||
const toggleBits = guildToggles[key as keyof typeof guildToggles];
|
||||
if (toggleBits) {
|
||||
bitfield |= value ? toggleBits : 0n;
|
||||
continue;
|
||||
bitfield |= rest[key] ? toggleBits : 0n;
|
||||
return;
|
||||
}
|
||||
|
||||
props[key] = createNewProp(GUILD_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value);
|
||||
}
|
||||
props[key] = createNewProp(
|
||||
GUILD_SNOWFLAKES.includes(key) ? (rest[key] ? snowflakeToBigint(rest[key] as string) : undefined) : rest[key]
|
||||
);
|
||||
});
|
||||
|
||||
const hashes = [
|
||||
{ name: "icon", toggle: guildToggles.animatedIcon, value: icon },
|
||||
|
||||
@@ -137,32 +137,31 @@ export async function createDiscordenoMember(
|
||||
|
||||
let bitfield = 0n;
|
||||
const props: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||
|
||||
for (const [key, value] of Object.entries(user)) {
|
||||
(Object.keys(user) as (keyof typeof user)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running for of for Object.keys(user) loop in DiscordenoMember function.`);
|
||||
|
||||
const toggleBits = memberToggles[key as keyof typeof memberToggles];
|
||||
if (toggleBits) {
|
||||
bitfield |= value ? toggleBits : 0n;
|
||||
continue;
|
||||
bitfield |= user[key] ? toggleBits : 0n;
|
||||
return;
|
||||
}
|
||||
|
||||
if (key === "avatar") {
|
||||
const transformed = value ? iconHashToBigInt(value) : undefined;
|
||||
const transformed = user[key] ? iconHashToBigInt(user[key] as string) : undefined;
|
||||
if (transformed?.animated) bitfield |= memberToggles.animatedAvatar;
|
||||
props.avatar = createNewProp(transformed?.bigint);
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
|
||||
if (key === "discriminator") {
|
||||
props.discriminator = createNewProp(Number(value));
|
||||
continue;
|
||||
props.discriminator = createNewProp(Number(user[key]));
|
||||
return;
|
||||
}
|
||||
|
||||
props[key] = createNewProp(
|
||||
MEMBER_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value
|
||||
MEMBER_SNOWFLAKES.includes(key) ? (user[key] ? snowflakeToBigint(user[key] as string) : undefined) : user[key]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const member: DiscordenoMember = Object.create(baseMember, {
|
||||
...props,
|
||||
|
||||
@@ -209,22 +209,22 @@ export async function createDiscordenoMessage(data: Message) {
|
||||
let bitfield = 0n;
|
||||
|
||||
const props: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||
for (const [key, value] of Object.entries(rest)) {
|
||||
(Object.keys(rest) as (keyof typeof rest)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running for of loop in createDiscordenoMessage function.`);
|
||||
|
||||
const toggleBits = messageToggles[key as keyof typeof messageToggles];
|
||||
if (toggleBits) {
|
||||
bitfield |= value ? toggleBits : 0n;
|
||||
continue;
|
||||
bitfield |= rest[key] ? toggleBits : 0n;
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't add member to props since it would overwrite the message.member getter
|
||||
if (key === "member") continue;
|
||||
if (key === "member") return;
|
||||
|
||||
props[key] = createNewProp(
|
||||
MESSAGE_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value
|
||||
MESSAGE_SNOWFLAKES.includes(key) ? (rest[key] ? snowflakeToBigint(rest[key] as string) : undefined) : rest[key]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
props.authorId = createNewProp(snowflakeToBigint(author.id));
|
||||
props.isBot = createNewProp(author.bot || false);
|
||||
|
||||
@@ -115,17 +115,19 @@ export async function createDiscordenoRole(
|
||||
let bitfield = 0n;
|
||||
|
||||
const props: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||
for (const [key, value] of Object.entries(rest)) {
|
||||
(Object.keys(rest) as (keyof typeof rest)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running for of loop in createDiscordenoRole function.`);
|
||||
|
||||
const toggleBits = roleToggles[key as keyof typeof roleToggles];
|
||||
if (toggleBits) {
|
||||
bitfield |= value ? toggleBits : 0n;
|
||||
continue;
|
||||
bitfield |= rest[key] ? toggleBits : 0n;
|
||||
return;
|
||||
}
|
||||
|
||||
props[key] = createNewProp(ROLE_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value);
|
||||
}
|
||||
props[key] = createNewProp(
|
||||
ROLE_SNOWFLAKES.includes(key) ? (rest[key] ? snowflakeToBigint(rest[key] as string) : undefined) : rest[key]
|
||||
);
|
||||
});
|
||||
|
||||
const role: DiscordenoRole = Object.create(baseRole, {
|
||||
...props,
|
||||
|
||||
@@ -81,22 +81,26 @@ export async function createDiscordenoVoiceState(guildId: bigint, data: VoiceSta
|
||||
let bitfield = 0n;
|
||||
|
||||
const props: Record<string, ReturnType<typeof createNewProp>> = {};
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
(Object.keys(data) as (keyof typeof data)[]).forEach((key) => {
|
||||
eventHandlers.debug?.("loop", `Running for of loop in createDiscordenoVoiceState function.`);
|
||||
|
||||
// We don't need to cache member twice. It will be in cache.members
|
||||
if (key === "member") continue;
|
||||
if (key === "member") return;
|
||||
|
||||
const toggleBits = voiceStateToggles[key as keyof typeof voiceStateToggles];
|
||||
if (toggleBits) {
|
||||
bitfield |= value ? toggleBits : 0n;
|
||||
continue;
|
||||
bitfield |= data[key] ? toggleBits : 0n;
|
||||
return;
|
||||
}
|
||||
|
||||
props[key] = createNewProp(
|
||||
VOICE_STATE_SNOWFLAKES.includes(key) ? (value ? snowflakeToBigint(value) : undefined) : value
|
||||
VOICE_STATE_SNOWFLAKES.includes(key)
|
||||
? data[key]
|
||||
? snowflakeToBigint(data[key] as string)
|
||||
: undefined
|
||||
: data[key]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const voiceState: DiscordenoVoiceState = Object.create(baseRole, {
|
||||
...props,
|
||||
|
||||
Reference in New Issue
Block a user