Linting
All checks were successful
release-tag / release-image (push) Successful in 1m52s
Lint JavaScript/Node.js / lint-js (push) Successful in 11s
DRB Tests / drb_mocha_tests (push) Successful in 29s

This commit is contained in:
Logan Cusano
2024-08-11 15:57:46 -04:00
parent 5cd47378d6
commit 117cbea67f
37 changed files with 2273 additions and 1738 deletions

View File

@@ -1,33 +1,45 @@
import { DebugBuilder } from "../modules/debugger.mjs";
const log = new DebugBuilder("server", "addonManager");
import { fileURLToPath } from 'url';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from "url";
import fs from "fs";
import path from "path";
// Function to load addons from the addons directory
export const loadAddons = async (nodeIo) => {
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const addonsDir = path.join(__dirname, '../addons');
const addonsDir = path.join(__dirname, "../addons");
// Read the directory containing addon modules
const addonDirectories = await fs.readdirSync(addonsDir, { withFileTypes: true });
// Read the directory containing addon modules
const addonDirectories = await fs.readdirSync(addonsDir, {
withFileTypes: true,
});
addonDirectories.forEach(addonDir => {
if (addonDir.isDirectory()) {
const addonConfigPath = path.join(addonsDir, addonDir.name, 'config.json');
if (fs.existsSync(addonConfigPath)) {
const addonConfig = JSON.parse(fs.readFileSync(addonConfigPath, 'utf-8'));
if (addonConfig.enabled) {
const addonIndexPath = path.join(addonsDir, addonDir.name, 'index.js');
import(`file://${addonIndexPath}`).then(addonModule => {
log.DEBUG("Loading addon: ", addonModule);
addonModule.initialize(nodeIo, addonConfig);
log.DEBUG(`Addon ${addonConfig.name} loaded.`);
});
}
}
addonDirectories.forEach((addonDir) => {
if (addonDir.isDirectory()) {
const addonConfigPath = path.join(
addonsDir,
addonDir.name,
"config.json",
);
if (fs.existsSync(addonConfigPath)) {
const addonConfig = JSON.parse(
fs.readFileSync(addonConfigPath, "utf-8"),
);
if (addonConfig.enabled) {
const addonIndexPath = path.join(
addonsDir,
addonDir.name,
"index.js",
);
import(`file://${addonIndexPath}`).then((addonModule) => {
log.DEBUG("Loading addon: ", addonModule);
addonModule.initialize(nodeIo, addonConfig);
log.DEBUG(`Addon ${addonConfig.name} loaded.`);
});
}
});
}
}
}
});
};