Skip to content

Commit b1e66f0

Browse files
committed
chore: perfomance
1 parent 7591c11 commit b1e66f0

File tree

6 files changed

+49
-57
lines changed

6 files changed

+49
-57
lines changed

src/cache/adapters/limited.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,10 @@ export class LimitedMemoryAdapter<T> implements Adapter {
7777
const storageArray = Array.from(this.storage.values());
7878
const keySet = new Set(keys);
7979

80-
return storageArray
81-
.flatMap(storageEntry => {
82-
const entries = Array.from(storageEntry.entries());
83-
return entries.filter(([key]) => keySet.has(key)).map(([, value]) => this.options.decode(value.value as T));
84-
})
85-
.filter(Boolean);
80+
return storageArray.flatMap(storageEntry => {
81+
const entries = Array.from(storageEntry.entries());
82+
return entries.filter(([key]) => keySet.has(key)).map(([, value]) => this.options.decode(value.value as T));
83+
});
8684
}
8785

8886
get(key: string) {

src/cache/resources/bans.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,12 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
2727
}
2828

2929
override bulk(ids: string[], guild: string): ReturnCache<GuildBanStructure[]> {
30-
return fakePromise(super.bulk(ids, guild)).then(
31-
bans =>
32-
bans
33-
.map(rawBan => {
34-
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
35-
})
36-
.filter(Boolean) as GuildBanStructure[],
30+
return fakePromise(super.bulk(ids, guild)).then(bans =>
31+
bans
32+
.map(rawBan => {
33+
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
34+
})
35+
.filter(x => x !== undefined),
3736
);
3837
}
3938

@@ -42,13 +41,12 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
4241
}
4342

4443
override values(guild: string): ReturnCache<GuildBanStructure[]> {
45-
return fakePromise(super.values(guild)).then(
46-
bans =>
47-
bans
48-
.map(rawBan => {
49-
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
50-
})
51-
.filter(Boolean) as GuildBanStructure[],
44+
return fakePromise(super.values(guild)).then(bans =>
45+
bans
46+
.map(rawBan => {
47+
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
48+
})
49+
.filter(x => x !== undefined),
5250
);
5351
}
5452

src/cache/resources/guilds.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class Guilds extends BaseResource<any, APIGuild | GatewayGuildCreateDispa
8080
this.cache.voiceStates?.hashId(id),
8181
this.cache.presences?.hashId(id),
8282
this.cache.stageInstances?.hashId(id),
83-
].filter(Boolean) as string[],
83+
].filter(x => x !== undefined),
8484
);
8585

8686
await super.remove(id);

src/cache/resources/members.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
3939

4040
override bulk(ids: string[], guild: string): ReturnCache<GuildMemberStructure[]> {
4141
return fakePromise(super.bulk(ids, guild)).then(members =>
42-
fakePromise(this.client.cache.users?.bulkRaw(ids)).then(
43-
users =>
44-
members
45-
.map(rawMember => {
46-
const user = users?.find(x => x.id === rawMember.id);
47-
return user ? Transformers.GuildMember(this.client, rawMember, user, guild) : undefined;
48-
})
49-
.filter(Boolean) as GuildMemberStructure[],
42+
fakePromise(this.client.cache.users?.bulkRaw(ids)).then(users =>
43+
members
44+
.map(rawMember => {
45+
const user = users?.find(x => x.id === rawMember.id);
46+
return user ? Transformers.GuildMember(this.client, rawMember, user, guild) : undefined;
47+
})
48+
.filter(x => x !== undefined),
5049
),
5150
);
5251
}
@@ -57,14 +56,13 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
5756

5857
override values(guild: string): ReturnCache<GuildMemberStructure[]> {
5958
return fakePromise(super.values(guild)).then(members =>
60-
fakePromise(this.client.cache.users?.valuesRaw()).then(
61-
users =>
62-
members
63-
.map(rawMember => {
64-
const user = users?.find(x => x.id === rawMember.id);
65-
return user ? Transformers.GuildMember(this.client, rawMember, user, rawMember.guild_id) : undefined;
66-
})
67-
.filter(Boolean) as GuildMemberStructure[],
59+
fakePromise(this.client.cache.users?.valuesRaw()).then(users =>
60+
members
61+
.map(rawMember => {
62+
const user = users?.find(x => x.id === rawMember.id);
63+
return user ? Transformers.GuildMember(this.client, rawMember, user, rawMember.guild_id) : undefined;
64+
})
65+
.filter(x => x !== undefined),
6866
),
6967
);
7068
}

src/cache/resources/messages.ts

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,18 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
3636
}
3737

3838
override bulk(ids: string[]): ReturnCache<MessageStructure[]> {
39-
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(
40-
messages =>
41-
messages
42-
.map(rawMessage => {
43-
return this.cache.users && rawMessage?.user_id
44-
? fakePromise(
45-
this.cache.adapter.get(this.cache.users.hashId(rawMessage.user_id)) as APIUser | undefined,
46-
).then(user => {
47-
return user ? Transformers.Message(this.client, { ...rawMessage, author: user }) : undefined;
48-
})
49-
: undefined;
50-
})
51-
.filter(Boolean) as MessageStructure[],
39+
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(messages =>
40+
messages
41+
.map(rawMessage => {
42+
return this.cache.users && rawMessage?.user_id
43+
? fakePromise(
44+
this.cache.adapter.get(this.cache.users.hashId(rawMessage.user_id)) as APIUser | undefined,
45+
).then(user => {
46+
return user ? Transformers.Message(this.client, { ...rawMessage, author: user }) : undefined;
47+
})
48+
: undefined;
49+
})
50+
.filter(x => x !== undefined),
5251
);
5352
}
5453

@@ -61,13 +60,13 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
6160
const hashes: (string | undefined)[] = this.cache.users
6261
? messages.map(x => (x.user_id ? this.cache.users?.hashId(x.user_id) : undefined))
6362
: [];
64-
return fakePromise(this.cache.adapter.bulkGet(hashes.filter(Boolean) as string[]) as APIUser[]).then(users => {
63+
return fakePromise(this.cache.adapter.bulkGet(hashes.filter(x => x !== undefined)) as APIUser[]).then(users => {
6564
return messages
6665
.map(message => {
6766
const user = users.find(user => user.id === message.user_id);
6867
return user ? Transformers.Message(this.client, { ...message, author: user }) : undefined;
6968
})
70-
.filter(Boolean) as MessageStructure[];
69+
.filter(x => x !== undefined);
7170
});
7271
});
7372
}

src/cache/resources/voice-states.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ export class VoiceStates extends GuildBasedResource<any, APIVoiceState> {
2828
}
2929

3030
override bulk(ids: string[], guild: string): ReturnCache<VoiceStateStructure[]> {
31-
return fakePromise(super.bulk(ids, guild)).then(
32-
states =>
33-
states
34-
.map(state => (state ? Transformers.VoiceState(this.client, state) : undefined))
35-
.filter(y => !!y) as VoiceStateStructure[],
31+
return fakePromise(super.bulk(ids, guild)).then(states =>
32+
states
33+
.map(state => (state ? Transformers.VoiceState(this.client, state) : undefined))
34+
.filter(x => x !== undefined),
3635
);
3736
}
3837

0 commit comments

Comments
 (0)