From ac182a905d1f422c0103a8bde42fe2d9975ef391 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 27 Nov 2020 18:02:28 +0100 Subject: [PATCH] MultiProject --- TaskServer/Globals.js | 2 +- TaskServer/MultiProject.js | 75 ++++++++++++++++++++++++++++++++++++++ TaskServer/Task.js | 71 ++---------------------------------- 3 files changed, 79 insertions(+), 69 deletions(-) create mode 100644 TaskServer/MultiProject.js diff --git a/TaskServer/Globals.js b/TaskServer/Globals.js index 0c1e30147..1bf265a7b 100644 --- a/TaskServer/Globals.js +++ b/TaskServer/Globals.js @@ -1,4 +1,4 @@ -exports.newGlobals = function newGlobals() { +exports.newGlobals = function () { let thisObject = { initialize: initialize diff --git a/TaskServer/MultiProject.js b/TaskServer/MultiProject.js new file mode 100644 index 000000000..2c7eddbdf --- /dev/null +++ b/TaskServer/MultiProject.js @@ -0,0 +1,75 @@ +exports.newMultiProject = function () { + + let thisObject = { + initialize: initialize + } + + return thisObject; + + function initialize() { + /* + Here we will setup the TS object, with all the + projects and modules that will have inside. + */ + global.TS = { + projects: {} + } + for (let i = 0; i < PROJECTS_SCHEMA.length; i++) { + let projectDefinition = PROJECTS_SCHEMA[i] + global.TS.projects[projectDefinition.propertyName] = {} + let projectInstance = global.TS.projects[projectDefinition.propertyName] + + projectInstance.utilities = {} + projectInstance.globals = {} + projectInstance.functionLibraries = {} + + /* Set up Utilities of this Project */ + if (projectDefinition.TS.utilities !== undefined) { + for (let j = 0; j < projectDefinition.TS.utilities.length; j++) { + let utilityDefinition = projectDefinition.TS.utilities[j] + let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Utilities' + '/' + utilityDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[utilityDefinition.functionName] + projectInstance.utilities[utilityDefinition.propertyName] = requiredFunction.call() + } + } + + /* Set up Globals of this Project */ + if (projectDefinition.TS.globals !== undefined) { + for (let j = 0; j < projectDefinition.TS.globals.length; j++) { + let globalDefinition = projectDefinition.TS.globals[j] + let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Globals' + '/' + globalDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[globalDefinition.functionName] + projectInstance.globals[globalDefinition.propertyName] = requiredFunction.call() + } + } + + /* Set up Function Libraries of this Project */ + if (projectDefinition.TS.functionLibraries !== undefined) { + for (let j = 0; j < projectDefinition.TS.functionLibraries.length; j++) { + let functionLibraryDefinition = projectDefinition.TS.functionLibraries[j] + let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Function-Libraries' + '/' + functionLibraryDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[functionLibraryDefinition.functionName] + projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = requiredFunction.call() + } + } + + /* Set up Bot Classes of this Project */ + if (projectDefinition.TS.botClasses !== undefined) { + for (let j = 0; j < projectDefinition.TS.botClasses.length; j++) { + let botClassDefinition = projectDefinition.TS.botClasses[j] + let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Bot-Classes' + '/' + botClassDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[botClassDefinition.functionName] + projectInstance.botClasses[botClassDefinition.propertyName] = requiredFunction.call() + } + } + } + } +} \ No newline at end of file diff --git a/TaskServer/Task.js b/TaskServer/Task.js index d90f20cb6..b5f31da6a 100644 --- a/TaskServer/Task.js +++ b/TaskServer/Task.js @@ -83,76 +83,11 @@ function preLoader() { } } -function setupUpTS() { - /* - Here we will setup the TS object, with all the - projects and modules that will have inside. - */ - global.TS = { - projects: {} - } - for (let i = 0; i < PROJECTS_SCHEMA.length; i++) { - let projectDefinition = PROJECTS_SCHEMA[i] - global.TS.projects[projectDefinition.propertyName] = {} - let projectInstance = global.TS.projects[projectDefinition.propertyName] - - projectInstance.utilities = {} - projectInstance.globals = {} - projectInstance.functionLibraries = {} - - /* Set up Utilities of this Project */ - if (projectDefinition.TS.utilities !== undefined) { - for (let j = 0; j < projectDefinition.TS.utilities.length; j++) { - let utilityDefinition = projectDefinition.TS.utilities[j] - let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Utilities' + '/' + utilityDefinition.fileName - - let requiredObject = require(path) - let requiredFunction = requiredObject[utilityDefinition.functionName] - projectInstance.utilities[utilityDefinition.propertyName] = requiredFunction.call() - } - } - - /* Set up Globals of this Project */ - if (projectDefinition.TS.globals !== undefined) { - for (let j = 0; j < projectDefinition.TS.globals.length; j++) { - let globalDefinition = projectDefinition.TS.globals[j] - let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Globals' + '/' + globalDefinition.fileName - - let requiredObject = require(path) - let requiredFunction = requiredObject[globalDefinition.functionName] - projectInstance.globals[globalDefinition.propertyName] = requiredFunction.call() - } - } - - /* Set up Function Libraries of this Project */ - if (projectDefinition.TS.functionLibraries !== undefined) { - for (let j = 0; j < projectDefinition.TS.functionLibraries.length; j++) { - let functionLibraryDefinition = projectDefinition.TS.functionLibraries[j] - let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Function-Libraries' + '/' + functionLibraryDefinition.fileName - - let requiredObject = require(path) - let requiredFunction = requiredObject[functionLibraryDefinition.functionName] - projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = requiredFunction.call() - } - } - - /* Set up Bot Classes of this Project */ - if (projectDefinition.TS.botClasses !== undefined) { - for (let j = 0; j < projectDefinition.TS.botClasses.length; j++) { - let botClassDefinition = projectDefinition.TS.botClasses[j] - let path = process.env.REQUIRED_PROJECTS_PATH + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Bot-Classes' + '/' + botClassDefinition.fileName - - let requiredObject = require(path) - let requiredFunction = requiredObject[botClassDefinition.functionName] - projectInstance.botClasses[botClassDefinition.propertyName] = requiredFunction.call() - } - } - } -} - function bootLoader() { - setupUpTS() + let MULTI_PROJECT = require('./MultiProject.js'); + let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject() + MULTI_PROJECT_MODULE.initialize() /* Heartbeat sent to the UI */