Este es el código que tengo actualmente, cómo lo adaptaría para verificar cada subdirectorio:
const fs = require('fs') module.exports = (client, Discord) =>{ const command_files = fs.readdirSync('./commands/').filter(file => file.endsWith('.js')) for(const file of command_files){ const command = require(`../commands/${file}`); if(command.name) { client.commands.set(command.name, command); } else { continue } } }Y este es el diseño que tengo para la carpeta de comandos el diseño de la carpeta
Debe envolver todo el código en una función y usar algo de recursividad.
Tenga en cuenta que, al usar la recusión, una variable de depth es una forma inteligente de manejarla.
Algo como esto debería hacerlo:
const fs = require('fs') module.exports = (client, Discord) =>{ const depth = 3; const finder = (path, currentDepth = 0) => { if (currentDepth >= depth) { return; // Breaks here } const dirContent = fs.readdirSync(path); const command_files = dirContent.filter(file => file.endsWith('.js')); const folders = dirContent.filter(file => { const dirPath = path + file; // Exists + is a directory verification return fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory(); ); for(const file of command_files){ const filePath = '../' + path + file; const command = require(filePath); if(command.name) { client.commands.set(command.name, command); } else { continue } } // Loops through folders folders.map((folder) => finder(path + folder + '/', currentDepth + 1)); } finder('./commands/'); }