Multi-Project module reused between Client and Task Server
This commit is contained in:
1 parent
6504f47b6f
commit
71514d580e
8 files changed
+80
-137
No files matched your search
@@ -1,109 +0,0 @@
|
||||
exports.newMultiProject = function () {
|
||||
|
||||
let thisObject = {
|
||||
initialize: initialize
|
||||
}
|
||||
|
||||
return thisObject;
|
||||
|
||||
function initialize() {
|
||||
/*
|
||||
First thing is to load the project schema file.
|
||||
*/
|
||||
let PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECTS_REQUIRED + '/' + 'ProjectsSchema.json')
|
||||
|
||||
/*
|
||||
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 = {}
|
||||
projectInstance.taskModules = {}
|
||||
projectInstance.processModules = {}
|
||||
projectInstance.botModules = {}
|
||||
|
||||
if (projectDefinition.TS === undefined) { continue }
|
||||
|
||||
/* 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 = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + 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 = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + 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 = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Function-Libraries' + '/' + functionLibraryDefinition.fileName
|
||||
|
||||
let requiredObject = require(path)
|
||||
let requiredFunction = requiredObject[functionLibraryDefinition.functionName]
|
||||
projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = requiredFunction.call()
|
||||
}
|
||||
}
|
||||
|
||||
/* Set up Process Modules for this Project */
|
||||
if (projectDefinition.TS.taskModules !== undefined) {
|
||||
for (let j = 0; j < projectDefinition.TS.taskModules.length; j++) {
|
||||
let taskModuleDefinition = projectDefinition.TS.taskModules[j]
|
||||
let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Task-Modules' + '/' + taskModuleDefinition.fileName
|
||||
|
||||
let requiredObject = require(path)
|
||||
projectInstance.taskModules[taskModuleDefinition.propertyName] = requiredObject
|
||||
}
|
||||
}
|
||||
|
||||
/* Set up Process Modules for this Project */
|
||||
if (projectDefinition.TS.processModules !== undefined) {
|
||||
for (let j = 0; j < projectDefinition.TS.processModules.length; j++) {
|
||||
let processModuleDefinition = projectDefinition.TS.processModules[j]
|
||||
let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Process-Modules' + '/' + processModuleDefinition.fileName
|
||||
|
||||
let requiredObject = require(path)
|
||||
projectInstance.processModules[processModuleDefinition.propertyName] = requiredObject
|
||||
}
|
||||
}
|
||||
|
||||
/* Set up Bot Modules for this Project */
|
||||
if (projectDefinition.TS.botModules !== undefined) {
|
||||
for (let j = 0; j < projectDefinition.TS.botModules.length; j++) {
|
||||
let botModuleDefinition = projectDefinition.TS.botModules[j]
|
||||
let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'TS' + '/' + 'Bot-Modules' + '/' + botModuleDefinition.folderName + '/' + botModuleDefinition.fileName
|
||||
|
||||
let requiredObject = require(path)
|
||||
projectInstance.botModules[botModuleDefinition.propertyName] = requiredObject
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TS.projects.foundations.globals.taskConstants.PROJECTS_SCHEMA = PROJECTS_SCHEMA
|
||||
|
||||
}
|
||||
}
|
||||
@@ -52,8 +52,8 @@
|
||||
the bot type received via websockets events, at the PROJECTS SCHEMA a botModule must be
|
||||
defined with the same type at the property botType.
|
||||
*/
|
||||
for (let i = 0; i < TS.projects.foundations.globals.taskConstants.PROJECTS_SCHEMA.length; i++) {
|
||||
let project = TS.projects.foundations.globals.taskConstants.PROJECTS_SCHEMA[i]
|
||||
for (let i = 0; i < PROJECTS_SCHEMA.length; i++) {
|
||||
let project = PROJECTS_SCHEMA[i]
|
||||
if (project.name !== TS.projects.foundations.globals.taskConstants.PROJECT_DEFINITION_NODE.config.codeName) { continue }
|
||||
for (let j = 0; j < project.TS.botModules.length; j++) {
|
||||
botModuleDefinition = project.TS.botModules[j]
|
||||
|
||||
+20
-3
@@ -8,10 +8,27 @@ let NODE_JS_PROCESS = require('./NodeJsProcess.js');
|
||||
let NODE_JS_PROCESS_MODULE = NODE_JS_PROCESS.newNodeJsProcess()
|
||||
NODE_JS_PROCESS_MODULE.initialize()
|
||||
|
||||
/* Setting up the modules that will be available for the Task and it's processes */
|
||||
let MULTI_PROJECT = require('./MultiProject.js');
|
||||
/*
|
||||
The TS object is accesible everywhere at the Superalgos Client.
|
||||
It provides access to all modules built for the Task Server.
|
||||
*/
|
||||
global.TS = {}
|
||||
/*
|
||||
The SA object is accesible everywhere at the Superalgos Client.
|
||||
It provides access to all modules built Superalgos in general.
|
||||
*/
|
||||
global.SA = {}
|
||||
/*
|
||||
First thing is to load the project schema file.
|
||||
*/
|
||||
global.PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECT_SCHEMA)
|
||||
/*
|
||||
Setting up the modules that will be available for the Servers Running inside this Client
|
||||
*/
|
||||
let MULTI_PROJECT = require('../MultiProject.js');
|
||||
let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject()
|
||||
MULTI_PROJECT_MODULE.initialize()
|
||||
MULTI_PROJECT_MODULE.initialize(TS, 'TS')
|
||||
MULTI_PROJECT_MODULE.initialize(SA, 'SA')
|
||||
|
||||
/* Setting up the global Event Handler */
|
||||
TS.projects.foundations.globals.taskConstants.EVENT_SERVER_CLIENT_MODULE_OBJECT = TS.projects.foundations.taskModules.eventServerClient.newFoundationsTaskModulesEventServerClient()
|
||||
|
||||
Reference in new issue
Block a user