dragonroll/backend/services/plugins.js

34 lines
951 B
JavaScript
Raw Normal View History

const fs = require('fs');
const path = require('path')
2024-10-05 10:57:47 +00:00
const Api = require('./api').Api
const basePath = path.resolve(__dirname, '../')
console.log(basePath)
let pluginsInfo = [];
let plugins = {};
function init(){
console.log("Initializing plugins");
const pluginFolders = fs.readdirSync(path.resolve(basePath + '/plugins'));
pluginFolders.forEach(pluginFolder => {
pluginsInfo.push(JSON.parse(fs.readFileSync(
path.resolve(basePath, 'plugins', pluginFolder, "plugin.json")
)));
});
console.log("Launching using the following plugins:");
pluginsInfo.forEach(pluginInfo => {
console.log(`\t- ${pluginInfo.name}`);
plugins[pluginInfo.package] = require(`${basePath}/plugins/${pluginInfo.package}/${pluginInfo.backend.entrypoint}`);
});
// Execute main
Object.keys(plugins).forEach(k => {
2024-10-05 10:57:47 +00:00
plugins[k].Main(new Api(k))
})
}
module.exports = {
init
}