mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 20:46:08 +00:00
feat: cache raw methods
This commit is contained in:
parent
eb1a999c45
commit
9e0586986d
24
src/cache/resources/bans.ts
vendored
24
src/cache/resources/bans.ts
vendored
@ -22,6 +22,10 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string, guild: string): ReturnCache<Omit<GatewayGuildBanModifyDispatchData | APIBan, 'user'> | undefined> {
|
||||
return super.get(id, guild);
|
||||
}
|
||||
|
||||
override bulk(ids: string[], guild: string): ReturnCache<GuildBanStructure[]> {
|
||||
return fakePromise(super.bulk(ids, guild)).then(
|
||||
bans =>
|
||||
@ -33,6 +37,16 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[], guild: string): ReturnCache<Omit<GatewayGuildBanModifyDispatchData | APIBan, 'user'>[]> {
|
||||
return fakePromise(super.bulk(ids, guild)).then(bans =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan;
|
||||
})
|
||||
.filter(Boolean),
|
||||
);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<GuildBanStructure[]> {
|
||||
return fakePromise(super.values(guild)).then(
|
||||
bans =>
|
||||
@ -43,4 +57,14 @@ export class Bans extends GuildBasedResource<any, GatewayGuildBanModifyDispatchD
|
||||
.filter(Boolean) as GuildBanStructure[],
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<Omit<GatewayGuildBanModifyDispatchData | APIBan, 'user'>[]> {
|
||||
return fakePromise(super.values(guild)).then(bans =>
|
||||
bans
|
||||
.map(rawBan => {
|
||||
return rawBan;
|
||||
})
|
||||
.filter(Boolean),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
16
src/cache/resources/channels.ts
vendored
16
src/cache/resources/channels.ts
vendored
@ -13,25 +13,33 @@ export class Channels extends GuildRelatedResource<any, APIChannel> {
|
||||
return rest;
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIChannel | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override get(id: string): ReturnCache<AllChannels | undefined> {
|
||||
return fakePromise(super.get(id)).then(rawChannel =>
|
||||
rawChannel ? channelFrom(rawChannel, this.client) : undefined,
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<Omit<APIChannel, 'permission_overwrites'> | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<ReturnType<typeof channelFrom>[]> {
|
||||
return fakePromise(super.bulk(ids)).then(channels =>
|
||||
channels.map(rawChannel => channelFrom(rawChannel, this.client)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<Omit<APIChannel, 'permission_overwrites'>[]> {
|
||||
return fakePromise(super.bulk(ids)).then(channels => channels.map(rawChannel => rawChannel));
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<ReturnType<typeof channelFrom>[]> {
|
||||
return fakePromise(super.values(guild)).then(channels =>
|
||||
channels.map(rawChannel => channelFrom(rawChannel, this.client)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<Omit<APIChannel, 'permission_overwrites'>[]> {
|
||||
return fakePromise(super.values(guild)).then(channels => channels.map(rawChannel => rawChannel));
|
||||
}
|
||||
}
|
||||
|
12
src/cache/resources/emojis.ts
vendored
12
src/cache/resources/emojis.ts
vendored
@ -18,15 +18,27 @@ export class Emojis extends GuildRelatedResource<any, APIEmoji> {
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIEmoji | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<GuildEmojiStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as (APIEmoji & { id: string; guild_id: string })[]).then(emojis =>
|
||||
emojis.map(rawEmoji => Transformers.GuildEmoji(this.client, rawEmoji, rawEmoji.guild_id)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<(APIEmoji & { id: string; guild_id: string })[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<GuildEmojiStructure[]> {
|
||||
return fakePromise(super.values(guild) as (APIEmoji & { id: string; guild_id: string })[]).then(emojis =>
|
||||
emojis.map(rawEmoji => Transformers.GuildEmoji(this.client, rawEmoji, rawEmoji.guild_id)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<(APIEmoji & { id: string; guild_id: string })[]> {
|
||||
return super.values(guild);
|
||||
}
|
||||
}
|
||||
|
16
src/cache/resources/guilds.ts
vendored
16
src/cache/resources/guilds.ts
vendored
@ -12,28 +12,36 @@ export class Guilds extends BaseResource<any, APIGuild | GatewayGuildCreateDispa
|
||||
return true;
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIGuild | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override get(id: string): ReturnCache<GuildStructure<'cached'> | undefined> {
|
||||
return fakePromise(super.get(id)).then(guild =>
|
||||
guild ? Transformers.Guild<'cached'>(this.client, guild) : undefined,
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIGuild | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<GuildStructure<'cached'>[]> {
|
||||
return fakePromise(super.bulk(ids) as APIGuild[]).then(guilds =>
|
||||
guilds.map(x => Transformers.Guild<'cached'>(this.client, x)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<APIGuild[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(): ReturnCache<GuildStructure<'cached'>[]> {
|
||||
return fakePromise(super.values() as APIGuild[]).then(guilds =>
|
||||
guilds.map(x => Transformers.Guild<'cached'>(this.client, x)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(): ReturnCache<APIGuild[]> {
|
||||
return super.values();
|
||||
}
|
||||
|
||||
override async remove(id: string) {
|
||||
const keysChannels = this.cache.channels?.keys(id) ?? [];
|
||||
await this.cache.adapter.bulkRemove(
|
||||
|
24
src/cache/resources/members.ts
vendored
24
src/cache/resources/members.ts
vendored
@ -16,6 +16,14 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
|
||||
return rest;
|
||||
}
|
||||
|
||||
override get(id: string, guild: string): ReturnCache<GuildMemberStructure | undefined> {
|
||||
return fakePromise(super.get(id, guild)).then(rawMember =>
|
||||
fakePromise(this.client.cache.users?.raw(id)).then(user =>
|
||||
rawMember && user ? Transformers.GuildMember(this.client, rawMember, user, guild) : undefined,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string, guild: string): ReturnCache<APIGuildMember | undefined> {
|
||||
return fakePromise(super.get(id, guild) as Omit<APIGuildMember, 'user'>).then(rawMember => {
|
||||
return fakePromise(this.client.cache.users?.raw(id)).then(user =>
|
||||
@ -29,14 +37,6 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
|
||||
});
|
||||
}
|
||||
|
||||
override get(id: string, guild: string): ReturnCache<GuildMemberStructure | undefined> {
|
||||
return fakePromise(super.get(id, guild)).then(rawMember =>
|
||||
fakePromise(this.client.cache.users?.raw(id)).then(user =>
|
||||
rawMember && user ? Transformers.GuildMember(this.client, rawMember, user, guild) : undefined,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
override bulk(ids: string[], guild: string): ReturnCache<GuildMemberStructure[]> {
|
||||
return fakePromise(super.bulk(ids, guild)).then(members =>
|
||||
fakePromise(this.client.cache.users?.bulkRaw(ids)).then(
|
||||
@ -51,6 +51,10 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[], guild: string): ReturnCache<Omit<APIGuildMember, 'user'>[]> {
|
||||
return super.bulk(ids, guild);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<GuildMemberStructure[]> {
|
||||
return fakePromise(super.values(guild)).then(members =>
|
||||
fakePromise(this.client.cache.users?.valuesRaw()).then(
|
||||
@ -65,6 +69,10 @@ export class Members extends GuildBasedResource<any, APIGuildMember> {
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<Omit<APIGuildMember, 'user'>[]> {
|
||||
return super.values(guild);
|
||||
}
|
||||
|
||||
override async set(memberId: string, guildId: string, data: any): Promise<void>;
|
||||
override async set(memberId_dataArray: [string, any][], guildId: string): Promise<void>;
|
||||
override async set(__keys: string | [string, any][], guild: string, data?: any) {
|
||||
|
14
src/cache/resources/messages.ts
vendored
14
src/cache/resources/messages.ts
vendored
@ -31,6 +31,10 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
|
||||
});
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIMessageResource | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<MessageStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as APIMessageResource[]).then(
|
||||
messages =>
|
||||
@ -48,6 +52,10 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<APIMessageResource[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(channel: string): ReturnCache<MessageStructure[]> {
|
||||
return fakePromise(super.values(channel) as APIMessageResource[]).then(messages => {
|
||||
const hashes: (string | undefined)[] = this.cache.users
|
||||
@ -64,9 +72,13 @@ export class Messages extends GuildRelatedResource<any, APIMessage> {
|
||||
});
|
||||
}
|
||||
|
||||
valuesRaw(channel: string): ReturnCache<APIMessageResource[]> {
|
||||
return super.values(channel);
|
||||
}
|
||||
|
||||
keys(channel: string) {
|
||||
return super.keys(channel);
|
||||
}
|
||||
}
|
||||
|
||||
export type APIMessageResource = Omit<APIMessage, 'author'> & { user_id?: string };
|
||||
export type APIMessageResource = Omit<APIMessage, 'author' | 'member'> & { user_id?: string };
|
||||
|
10
src/cache/resources/overwrites.ts
vendored
10
src/cache/resources/overwrites.ts
vendored
@ -19,7 +19,7 @@ export class Overwrites extends GuildRelatedResource<any, APIOverwrite[]> {
|
||||
return data;
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<(APIOverwrite & { guild_id: string })[]> {
|
||||
raw(id: string): ReturnCache<(APIOverwrite & { guild_id: string })[] | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
@ -59,6 +59,10 @@ export class Overwrites extends GuildRelatedResource<any, APIOverwrite[]> {
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<(APIOverwrite & { guild_id: string })[][]> {
|
||||
return super.values(guild);
|
||||
}
|
||||
|
||||
override bulk(
|
||||
ids: string[],
|
||||
): ReturnCache<{ type: number; id: string; deny: PermissionsBitField; allow: PermissionsBitField }[][]> {
|
||||
@ -74,4 +78,8 @@ export class Overwrites extends GuildRelatedResource<any, APIOverwrite[]> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<(APIOverwrite & { guild_id: string })[][]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
}
|
||||
|
12
src/cache/resources/roles.ts
vendored
12
src/cache/resources/roles.ts
vendored
@ -12,22 +12,26 @@ export class Roles extends GuildRelatedResource<any, APIRole> {
|
||||
return true;
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIRole | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override get(id: string): ReturnCache<GuildRoleStructure | undefined> {
|
||||
return fakePromise(super.get(id)).then(rawRole =>
|
||||
rawRole ? Transformers.GuildRole(this.client, rawRole, rawRole.guild_id) : undefined,
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIRole | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<GuildRoleStructure[]> {
|
||||
return fakePromise(super.bulk(ids)).then(roles =>
|
||||
roles.map(rawRole => Transformers.GuildRole(this.client, rawRole, rawRole.guild_id)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<APIRole[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<GuildRoleStructure[]> {
|
||||
return fakePromise(super.values(guild)).then(roles =>
|
||||
roles.map(rawRole => Transformers.GuildRole(this.client, rawRole, rawRole.guild_id)),
|
||||
|
12
src/cache/resources/stickers.ts
vendored
12
src/cache/resources/stickers.ts
vendored
@ -18,15 +18,27 @@ export class Stickers extends GuildRelatedResource<any, APISticker> {
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APISticker | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<StickerStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as APISticker[]).then(emojis =>
|
||||
emojis.map(rawSticker => Transformers.Sticker(this.client, rawSticker)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<APISticker[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<StickerStructure[]> {
|
||||
return fakePromise(super.values(guild) as APISticker[]).then(emojis =>
|
||||
emojis.map(rawSticker => Transformers.Sticker(this.client, rawSticker)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<APISticker[]> {
|
||||
return super.values(guild);
|
||||
}
|
||||
}
|
||||
|
12
src/cache/resources/threads.ts
vendored
12
src/cache/resources/threads.ts
vendored
@ -18,15 +18,27 @@ export class Threads extends GuildRelatedResource<any, APIThreadChannel> {
|
||||
);
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIThreadChannel | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<ThreadChannelStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as APIThreadChannel[]).then(threads =>
|
||||
threads.map(rawThread => Transformers.ThreadChannel(this.client, rawThread)),
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[]): ReturnCache<APIThreadChannel[]> {
|
||||
return super.bulk(ids);
|
||||
}
|
||||
|
||||
override values(guild: string): ReturnCache<ThreadChannelStructure[]> {
|
||||
return fakePromise(super.values(guild) as APIThreadChannel[]).then(threads =>
|
||||
threads.map(rawThread => Transformers.ThreadChannel(this.client, rawThread)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guild: string): ReturnCache<APIThreadChannel[]> {
|
||||
return super.values(guild);
|
||||
}
|
||||
}
|
||||
|
8
src/cache/resources/users.ts
vendored
8
src/cache/resources/users.ts
vendored
@ -12,14 +12,14 @@ export class Users extends BaseResource<any, APIUser> {
|
||||
return true;
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIUser | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override get(id: string): ReturnCache<UserStructure | undefined> {
|
||||
return fakePromise(super.get(id)).then(rawUser => (rawUser ? Transformers.User(this.client, rawUser) : undefined));
|
||||
}
|
||||
|
||||
raw(id: string): ReturnCache<APIUser | undefined> {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
override bulk(ids: string[]): ReturnCache<UserStructure[]> {
|
||||
return fakePromise(super.bulk(ids) as APIUser[]).then(users =>
|
||||
users.map(rawUser => Transformers.User(this.client, rawUser)),
|
||||
|
12
src/cache/resources/voice-states.ts
vendored
12
src/cache/resources/voice-states.ts
vendored
@ -23,6 +23,10 @@ export class VoiceStates extends GuildBasedResource<any, GatewayVoiceState> {
|
||||
);
|
||||
}
|
||||
|
||||
raw(memberId: string, guildId: string): ReturnCache<GatewayVoiceState | undefined> {
|
||||
return super.get(memberId, guildId);
|
||||
}
|
||||
|
||||
override bulk(ids: string[], guild: string): ReturnCache<VoiceStateStructure[]> {
|
||||
return fakePromise(super.bulk(ids, guild)).then(
|
||||
states =>
|
||||
@ -32,11 +36,19 @@ export class VoiceStates extends GuildBasedResource<any, GatewayVoiceState> {
|
||||
);
|
||||
}
|
||||
|
||||
bulkRaw(ids: string[], guild: string): ReturnCache<GatewayVoiceState[]> {
|
||||
return super.bulk(ids, guild);
|
||||
}
|
||||
|
||||
override values(guildId: string): ReturnCache<VoiceStateStructure[]> {
|
||||
return fakePromise(super.values(guildId)).then(states =>
|
||||
states.map(state => Transformers.VoiceState(this.client, state)),
|
||||
);
|
||||
}
|
||||
|
||||
valuesRaw(guildId: string): ReturnCache<GatewayVoiceState[]> {
|
||||
return super.values(guildId);
|
||||
}
|
||||
}
|
||||
|
||||
export type VoiceStateResource = Omit<GatewayVoiceState, 'member'> & { guild_id: string };
|
||||
|
@ -5,6 +5,8 @@ import {
|
||||
type RESTPatchAPIChannelJSONBody,
|
||||
type RESTPostAPIChannelThreadsJSONBody,
|
||||
type RESTPostAPIGuildForumThreadsJSONBody,
|
||||
type ChannelType,
|
||||
type APIGuildChannel,
|
||||
} from 'discord-api-types/v10';
|
||||
import { BaseChannel, type GuildRole, type GuildMember } from '../../structures';
|
||||
import channelFrom, { type AllChannels } from '../../structures/channels';
|
||||
@ -29,7 +31,11 @@ export class ChannelShorter extends BaseShorter {
|
||||
let channel;
|
||||
if (!force) {
|
||||
channel = await this.client.cache.channels?.raw(id);
|
||||
if (channel) return channel;
|
||||
const overwrites = await this.client.cache.overwrites?.raw(id);
|
||||
if (channel) {
|
||||
if (overwrites) (channel as APIGuildChannel<ChannelType>).permission_overwrites = overwrites;
|
||||
return channel as APIChannel;
|
||||
}
|
||||
}
|
||||
|
||||
channel = await this.client.proxy.channels(id).get();
|
||||
|
Loading…
x
Reference in New Issue
Block a user