From 6baae04f4fe2c9111d2e5d5c3a5e2ebb87d6bf3a Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 8 Jan 2023 02:35:55 +0100 Subject: [PATCH] Integration module validation into the module controller --- server/controller/module.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/server/controller/module.js b/server/controller/module.js index 7b50621..b6ded77 100644 --- a/server/controller/module.js +++ b/server/controller/module.js @@ -1,14 +1,23 @@ const fs = require('fs'); const path = require('path'); +const moduleValidation = require('../validations/module'); +const {validateSchema} = require("../util/validate"); const modules = {}; module.exports.initialize = () => fs.readdirSync(path.join(process.cwd(), 'modules')) .forEach(moduleName => { - modules[moduleName] = require(process.cwd() + `/modules/${moduleName}/module`); + const currentModule = require(process.cwd() + `/modules/${moduleName}/module`); + + const moduleError = this.isValidModule(currentModule.info); + if (moduleError) return console.log(`Could not load module ${moduleName}: ${moduleError}`); + + modules[moduleName] = currentModule; console.log(`Module ${moduleName} has been loaded`); }); module.exports.getModule = (name) => modules[name]; -module.exports.getModules = () => modules; \ No newline at end of file +module.exports.getModules = () => modules; + +module.exports.isValidModule = (module) => validateSchema(moduleValidation, module);