@nodots-llc/backgammon-ai
Version:
AI and integration for nodots-backgammon using gnubg as a backend engine.
28 lines (27 loc) • 1.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadAnalyzersFromPluginsDir = loadAnalyzersFromPluginsDir;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function loadAnalyzersFromPluginsDir(pluginsDir) {
const analyzers = {};
const files = fs_1.default.readdirSync(pluginsDir);
for (const file of files) {
if (file.endsWith('.js') || file.endsWith('.ts')) {
const pluginPath = path_1.default.join(pluginsDir, file);
// eslint-disable-next-line @typescript-eslint/no-var-requires
const PluginClass = require(pluginPath).default;
if (PluginClass) {
const name = path_1.default.basename(file, path_1.default.extname(file));
analyzers[name] = new PluginClass();
}
}
}
return analyzers;
}
// Usage example:
// const analyzers = loadAnalyzersFromPluginsDir(path.join(__dirname, '../plugins'))
// const move = await analyzers['myCustomAnalyzer'].selectMove(moves, context)