mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 12:36:08 +00:00
chore: perfomance
This commit is contained in:
parent
7591c11446
commit
b1e66f05dc
10
src/cache/adapters/limited.ts
vendored
10
src/cache/adapters/limited.ts
vendored
@ -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 => {
|
||||
const entries = Array.from(storageEntry.entries());
|
||||
return entries.filter(([key]) => keySet.has(key)).map(([, value]) => this.options.decode(value.value as T));
|
||||
})
|
||||
.filter(Boolean);
|
||||
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));
|
||||
});
|
||||
}
|
||||
|
||||
get(key: string) {
|
||||
|
26
src/cache/resources/bans.ts
vendored
26
src/cache/resources/bans.ts
vendored
@ -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 =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
|
||||
})
|
||||
.filter(Boolean) as GuildBanStructure[],
|
||||
return fakePromise(super.bulk(ids, guild)).then(bans =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
|
||||
})
|
||||
.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 =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
|
||||
})
|
||||
.filter(Boolean) as GuildBanStructure[],
|
||||
return fakePromise(super.values(guild)).then(bans =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan ? Transformers.GuildBan(this.client, rawBan, guild) : undefined;
|
||||
})
|
||||
.filter(x => x !== undefined),
|
||||
);
|
||||
}
|
||||
|
||||
|
2
src/cache/resources/guilds.ts
vendored
2
src/cache/resources/guilds.ts
vendored
@ -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);
|
||||
|
30
src/cache/resources/members.ts
vendored
30
src/cache/resources/members.ts
vendored
@ -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 =>
|
||||
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[],
|
||||
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(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 =>
|
||||
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[],
|
||||
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(x => x !== undefined),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
29
src/cache/resources/messages.ts
vendored
29
src/cache/resources/messages.ts
vendored
@ -36,19 +36,18 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<MessageStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(
|
||||
messages =>
|
||||
messages
|
||||
.map(rawMessage => {
|
||||
return this.cache.users && rawMessage?.user_id
|
||||
? fakePromise(
|
||||
this.cache.adapter.get(this.cache.users.hashId(rawMessage.user_id)) as APIUser | undefined,
|
||||
).then(user => {
|
||||
return user ? Transformers.Message(this.client, { ...rawMessage, author: user }) : undefined;
|
||||
})
|
||||
: undefined;
|
||||
})
|
||||
.filter(Boolean) as MessageStructure[],
|
||||
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(messages =>
|
||||
messages
|
||||
.map(rawMessage => {
|
||||
return this.cache.users && rawMessage?.user_id
|
||||
? fakePromise(
|
||||
this.cache.adapter.get(this.cache.users.hashId(rawMessage.user_id)) as APIUser | undefined,
|
||||
).then(user => {
|
||||
return user ? Transformers.Message(this.client, { ...rawMessage, author: user }) : undefined;
|
||||
})
|
||||
: undefined;
|
||||
})
|
||||
.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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
9
src/cache/resources/voice-states.ts
vendored
9
src/cache/resources/voice-states.ts
vendored
@ -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 =>
|
||||
states
|
||||
.map(state => (state ? Transformers.VoiceState(this.client, state) : undefined))
|
||||
.filter(y => !!y) as VoiceStateStructure[],
|
||||
return fakePromise(super.bulk(ids, guild)).then(states =>
|
||||
states
|
||||
.map(state => (state ? Transformers.VoiceState(this.client, state) : undefined))
|
||||
.filter(x => x !== undefined),
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user