feat: improve component and command loading functions with directory existence checks

This commit is contained in:
2025-09-27 16:05:40 -05:00
parent db44e148d3
commit 05e83b5e14
3 changed files with 24 additions and 4 deletions

View File

@@ -8,7 +8,13 @@ export const modals: Collection<string, Modal> = new Collection<string, Modal>()
export const selectmenus: Collection<string, SelectMenu> = new Collection<string, SelectMenu>(); export const selectmenus: Collection<string, SelectMenu> = new Collection<string, SelectMenu>();
export const contextmenus: Collection<string, ContextMenu> = new Collection<string, ContextMenu>(); export const contextmenus: Collection<string, ContextMenu> = new Collection<string, ContextMenu>();
export function loadComponents(dir: string = path.join(__dirname, "..", "components")) { export function loadComponents(dir: string = path.resolve(__dirname, "../../components")) {
// Evitar fallo si el directorio no existe en el entorno
if (!fs.existsSync(dir)) {
console.warn(`⚠️ Directorio de componentes no encontrado: ${dir}`);
return;
}
const files = fs.readdirSync(dir); const files = fs.readdirSync(dir);
for (const file of files) { for (const file of files) {
@@ -21,6 +27,7 @@ export function loadComponents(dir: string = path.join(__dirname, "..", "compone
} }
if (!file.endsWith(".ts") && !file.endsWith(".js")) continue; if (!file.endsWith(".ts") && !file.endsWith(".js")) continue;
if (file.endsWith('.d.ts')) continue;
try { try {
const imported = require(fullPath); const imported = require(fullPath);

View File

@@ -4,7 +4,13 @@ import { Collection } from "discord.js";
export const commands = new Collection<string, any>(); export const commands = new Collection<string, any>();
export function loadCommands(dir: string = path.join(__dirname, '..', 'commands')) { export function loadCommands(dir: string = path.resolve(__dirname, "../../commands")) {
// Evitar fallo si el directorio no existe en el entorno
if (!fs.existsSync(dir)) {
console.warn(`⚠️ Directorio de comandos no encontrado: ${dir}`);
return;
}
const files = fs.readdirSync(dir); const files = fs.readdirSync(dir);
for (const file of files) { for (const file of files) {
@@ -16,7 +22,8 @@ export function loadCommands(dir: string = path.join(__dirname, '..', 'commands'
continue; continue;
} }
if (!file.endsWith('.ts')) continue; if (!file.endsWith('.ts') && !file.endsWith('.js')) continue;
if (file.endsWith('.d.ts')) continue;
const imported = require(fullPath); const imported = require(fullPath);
const command = imported.command ?? imported.default ?? imported; const command = imported.command ?? imported.default ?? imported;

View File

@@ -2,7 +2,13 @@ import { bot } from "../../main";
import path from "node:path"; import path from "node:path";
import * as fs from "node:fs"; import * as fs from "node:fs";
export function loadEvents(dir: string = path.join(__dirname, "../events")) { export function loadEvents(dir: string = path.resolve(__dirname, "../../events")) {
// Evitar fallo si el directorio no existe
if (!fs.existsSync(dir)) {
console.warn(`⚠️ Directorio de eventos no encontrado: ${dir}`);
return;
}
const files = fs.readdirSync(dir); const files = fs.readdirSync(dir);
for (const file of files) { for (const file of files) {