blob: 875e0b04f50f6e8682f33f202e8b4b6f25fec1f2 [file] [log] [blame]
import fs from "fs";
export default async function getSubcommandsInFolder(path: string, indent: string = "") {
const files = fs.readdirSync(path, { withFileTypes: true }).filter(
file => !file.name.endsWith(".ts") && !file.name.endsWith(".map")
);
const subcommands = [];
const subcommandGroups = [];
let errors = 0;
for (const file of files) {
if (file.name === "_meta.js") continue;
try {
if (file.isDirectory()) {
// Get the _meta.ts file
subcommandGroups.push(await import(`../../../${path}/${file.name}/_meta.js`));
} else if (file.name.endsWith(".js")) {
// If its a file
console.log(`│ ${indent}├─ Loading subcommand ${file.name}`)
subcommands.push(await import(`../../../${path}/${file.name}`));
}
} catch (e) {
console.error(`│ ${indent}│ └─ Error loading ${file.name}: ${e}`);
errors++;
}
}
return {subcommands, subcommandGroups, errors};
}