@getsolara/solara.js
Version:
A lightweight and modular Discord bot framework built on discord.js v14, with truly optional feature packages.
39 lines (36 loc) • 1.25 kB
JavaScript
const fs = require('fs');
const path = require('path');
function loadFiles(dirPath, fileSuffix = '.js', recursive = false) {
const results = [];
if (!fs.existsSync(dirPath)) {
return results;
}
try {
const filesAndDirs = fs.readdirSync(dirPath, { withFileTypes: true });
for (const item of filesAndDirs) {
const fullPath = path.join(dirPath, item.name);
if (item.isDirectory() && recursive) {
results.push(...loadFiles(fullPath, fileSuffix, recursive));
} else if (item.isFile() && item.name.endsWith(fileSuffix)) {
results.push(fullPath);
}
}
} catch (error) {
console.error(`Solara FileUtils: Error reading directory ${dirPath}:`, error);
}
return results;
}
function requireUncached(modulePath) {
try {
const absolutePath = path.resolve(modulePath);
delete require.cache[require.resolve(absolutePath)];
return require(absolutePath);
} catch (error) {
console.error(`Solara FileUtils: Error requiring file ${modulePath}:`, error);
return null;
}
}
module.exports = {
loadFiles,
requireUncached,
};