feat: Add Channels cache to Client with ObjectCache implementation

This commit is contained in:
2025-02-15 11:57:07 -06:00
parent 7f745d9a38
commit 1cafdbdcc8
2 changed files with 14 additions and 1 deletions
+10
View File
@@ -0,0 +1,10 @@
import { API } from "../api";
import { Processor } from "../processor";
import { Channel } from "../../types/channel";
import { ObjectCache } from "./cache";
export class Channels extends ObjectCache<Channel, Channel> {
constructor(api: API, processor: Processor) {
super(api, processor, 'channels', Channel, ['CHANNEL_CREATE', 'CHANNEL_UPDATE']);
}
}
+4 -1
View File
@@ -6,6 +6,7 @@ import { exists, isNil } from '../utils/index';
import { type DiscordMessage, Message } from '../types/message';
import { Guilds } from './caches/guilds';
import { Messages } from './caches/messages';
import { Channels } from './caches/channels';
import { Users } from './caches/users';
import { hydrate, hydrator, type Hydrateable, type Hydrated } from './hydrator';
import { EventBus, type Emitter } from './bus';
@@ -23,6 +24,7 @@ export class Client {
guilds: Guilds;
users: Users;
messages: Messages;
channels: Channels;
chatCommands: Processor[HandlerType.ChatCommands];
applicationCommands: Processor[HandlerType.ApplicationCommands];
interactions: Processor[HandlerType.Interactions];
@@ -43,6 +45,7 @@ export class Client {
this.guilds = new Guilds(this.api, this.processor);
this.users = new Users(this.api, this.processor);
this.messages = new Messages(this, this.api, this.processor);
this.channels = new Channels(this.api, this.processor);
// Save references to command and event handlers
this.chatCommands = this.processor[HandlerType.ChatCommands];
this.applicationCommands = this.processor[HandlerType.ApplicationCommands];
@@ -138,4 +141,4 @@ export class Client {
off = (event: string, handler: (...args: any[]) => void) => this.bus.off(event, handler);
connect = () => this.gateway.connect();
}
}