chore: perfomance

This commit is contained in:
MARCROCK22 2024-10-26 21:26:35 +00:00
parent 7591c11446
commit b1e66f05dc
6 changed files with 49 additions and 57 deletions

View File

@ -77,12 +77,10 @@ export class LimitedMemoryAdapter<T> implements Adapter {
const storageArray = Array.from(this.storage.values());
const keySet = new Set(keys);
return storageArray
.flatMap(storageEntry => {
return storageArray.flatMap(storageEntry => {
const entries = Array.from(storageEntry.entries());
return entries.filter(([key]) => keySet.has(key)).map(([, value]) => this.options.decode(value.value as T));
})
.filter(Boolean);
});
}
get(key: string) {

View File

@ -27,13 +27,12 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
}
override bulk(ids: string[], guild: string): ReturnCache<GuildBanStructure[]> {
return fakePromise(super.bulk(ids, guild)).then(
bans =>
return fakePromise(super.bulk(ids, guild)).then(bans =>
bans
.map(rawBan => {
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
})
.filter(Boolean) as GuildBanStructure[],
.filter(x => x !== undefined),
);
}
@ -42,13 +41,12 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
}
override values(guild: string): ReturnCache<GuildBanStructure[]> {
return fakePromise(super.values(guild)).then(
bans =>
return fakePromise(super.values(guild)).then(bans =>
bans
.map(rawBan => {
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
})
.filter(Boolean) as GuildBanStructure[],
.filter(x => x !== undefined),
);
}

View File

@ -80,7 +80,7 @@ export class Guilds extends BaseResource<any, APIGuild | GatewayGuildCreateDispa
this.cache.voiceStates?.hashId(id),
this.cache.presences?.hashId(id),
this.cache.stageInstances?.hashId(id),
].filter(Boolean) as string[],
].filter(x => x !== undefined),
);
await super.remove(id);

View File

@ -39,14 +39,13 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
override bulk(ids: string[], guild: string): ReturnCache<GuildMemberStructure[]> {
return fakePromise(super.bulk(ids, guild)).then(members =>
fakePromise(this.client.cache.users?.bulkRaw(ids)).then(
users =>
fakePromise(this.client.cache.users?.bulkRaw(ids)).then(users =>
members
.map(rawMember => {
const user = users?.find(x => x.id === rawMember.id);
return user ? Transformers.GuildMember(this.client, rawMember, user, guild) : undefined;
})
.filter(Boolean) as GuildMemberStructure[],
.filter(x => x !== undefined),
),
);
}
@ -57,14 +56,13 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
override values(guild: string): ReturnCache<GuildMemberStructure[]> {
return fakePromise(super.values(guild)).then(members =>
fakePromise(this.client.cache.users?.valuesRaw()).then(
users =>
fakePromise(this.client.cache.users?.valuesRaw()).then(users =>
members
.map(rawMember => {
const user = users?.find(x => x.id === rawMember.id);
return user ? Transformers.GuildMember(this.client, rawMember, user, rawMember.guild_id) : undefined;
})
.filter(Boolean) as GuildMemberStructure[],
.filter(x => x !== undefined),
),
);
}

View File

@ -36,8 +36,7 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
}
override bulk(ids: string[]): ReturnCache<MessageStructure[]> {
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(
messages =>
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(messages =>
messages
.map(rawMessage => {
return this.cache.users && rawMessage?.user_id
@ -48,7 +47,7 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
})
: undefined;
})
.filter(Boolean) as MessageStructure[],
.filter(x => x !== undefined),
);
}
@ -61,13 +60,13 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
const hashes: (string | undefined)[] = this.cache.users
? messages.map(x => (x.user_id ? this.cache.users?.hashId(x.user_id) : undefined))
: [];
return fakePromise(this.cache.adapter.bulkGet(hashes.filter(Boolean) as string[]) as APIUser[]).then(users => {
return fakePromise(this.cache.adapter.bulkGet(hashes.filter(x => x !== undefined)) as APIUser[]).then(users => {
return messages
.map(message => {
const user = users.find(user => user.id === message.user_id);
return user ? Transformers.Message(this.client, { ...message, author: user }) : undefined;
})
.filter(Boolean) as MessageStructure[];
.filter(x => x !== undefined);
});
});
}

View File

@ -28,11 +28,10 @@ export class VoiceStates extends GuildBasedResource<any, APIVoiceState> {
}
override bulk(ids: string[], guild: string): ReturnCache<VoiceStateStructure[]> {
return fakePromise(super.bulk(ids, guild)).then(
states =>
return fakePromise(super.bulk(ids, guild)).then(states =>
states
.map(state => (state ? Transformers.VoiceState(this.client, state) : undefined))
.filter(y => !!y) as VoiceStateStructure[],
.filter(x => x !== undefined),
);
}