Use es6 notation in loader

This commit is contained in:
rejas 2021-03-23 21:41:21 +01:00
parent dd366f35a8
commit 5fe654c19d

View File

@ -6,24 +6,24 @@
* By Michael Teeuw https://michaelteeuw.nl * By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed. * MIT Licensed.
*/ */
var Loader = (function () { const Loader = (function () {
/* Create helper variables */ /* Create helper variables */
var loadedModuleFiles = []; const loadedModuleFiles = [];
var loadedFiles = []; const loadedFiles = [];
var moduleObjects = []; const moduleObjects = [];
/* Private Methods */ /* Private Methods */
/** /**
* Loops thru all modules and requests load for every module. * Loops thru all modules and requests load for every module.
*/ */
var loadModules = function () { const loadModules = function () {
var moduleData = getModuleData(); let moduleData = getModuleData();
var loadNextModule = function () { const loadNextModule = function () {
if (moduleData.length > 0) { if (moduleData.length > 0) {
var nextModule = moduleData[0]; const nextModule = moduleData[0];
loadModule(nextModule, function () { loadModule(nextModule, function () {
moduleData = moduleData.slice(1); moduleData = moduleData.slice(1);
loadNextModule(); loadNextModule();
@ -46,9 +46,8 @@ var Loader = (function () {
/** /**
* Loops thru all modules and requests start for every module. * Loops thru all modules and requests start for every module.
*/ */
var startModules = function () { const startModules = function () {
for (var m in moduleObjects) { for (const module of moduleObjects) {
var module = moduleObjects[m];
module.start(); module.start();
} }
@ -56,7 +55,7 @@ var Loader = (function () {
MM.modulesStarted(moduleObjects); MM.modulesStarted(moduleObjects);
// Starting modules also hides any modules that have requested to be initially hidden // Starting modules also hides any modules that have requested to be initially hidden
for (let thisModule of moduleObjects) { for (const thisModule of moduleObjects) {
if (thisModule.data.hiddenOnStartup) { if (thisModule.data.hiddenOnStartup) {
Log.info("Initially hiding " + thisModule.name); Log.info("Initially hiding " + thisModule.name);
thisModule.hide(); thisModule.hide();
@ -69,7 +68,7 @@ var Loader = (function () {
* *
* @returns {object[]} module data as configured in config * @returns {object[]} module data as configured in config
*/ */
var getAllModules = function () { const getAllModules = function () {
return config.modules; return config.modules;
}; };
@ -78,29 +77,28 @@ var Loader = (function () {
* *
* @returns {object[]} Module information. * @returns {object[]} Module information.
*/ */
var getModuleData = function () { const getModuleData = function () {
var modules = getAllModules(); const modules = getAllModules();
var moduleFiles = []; const moduleFiles = [];
for (var m in modules) { modules.forEach(function (moduleData, index) {
var moduleData = modules[m]; const module = moduleData.module;
var module = moduleData.module;
var elements = module.split("/"); const elements = module.split("/");
var moduleName = elements[elements.length - 1]; const moduleName = elements[elements.length - 1];
var moduleFolder = config.paths.modules + "/" + module; let moduleFolder = config.paths.modules + "/" + module;
if (defaultModules.indexOf(moduleName) !== -1) { if (defaultModules.indexOf(moduleName) !== -1) {
moduleFolder = config.paths.modules + "/default/" + module; moduleFolder = config.paths.modules + "/default/" + module;
} }
if (moduleData.disabled === true) { if (moduleData.disabled === true) {
continue; return;
} }
moduleFiles.push({ moduleFiles.push({
index: m, index: index,
identifier: "module_" + m + "_" + module, identifier: "module_" + index + "_" + module,
name: moduleName, name: moduleName,
path: moduleFolder + "/", path: moduleFolder + "/",
file: moduleName + ".js", file: moduleName + ".js",
@ -111,7 +109,7 @@ var Loader = (function () {
config: moduleData.config, config: moduleData.config,
classes: typeof moduleData.classes !== "undefined" ? moduleData.classes + " " + module : module classes: typeof moduleData.classes !== "undefined" ? moduleData.classes + " " + module : module
}); });
} });
return moduleFiles; return moduleFiles;
}; };
@ -122,11 +120,11 @@ var Loader = (function () {
* @param {object} module Information about the module we want to load. * @param {object} module Information about the module we want to load.
* @param {Function} callback Function called when done. * @param {Function} callback Function called when done.
*/ */
var loadModule = function (module, callback) { const loadModule = function (module, callback) {
var url = module.path + module.file; const url = module.path + module.file;
var afterLoad = function () { const afterLoad = function () {
var moduleObject = Module.create(module.name); const moduleObject = Module.create(module.name);
if (moduleObject) { if (moduleObject) {
bootstrapModule(module, moduleObject, function () { bootstrapModule(module, moduleObject, function () {
callback(); callback();
@ -153,7 +151,7 @@ var Loader = (function () {
* @param {Module} mObj Modules instance. * @param {Module} mObj Modules instance.
* @param {Function} callback Function called when done. * @param {Function} callback Function called when done.
*/ */
var bootstrapModule = function (module, mObj, callback) { const bootstrapModule = function (module, mObj, callback) {
Log.info("Bootstrapping module: " + module.name); Log.info("Bootstrapping module: " + module.name);
mObj.setData(module); mObj.setData(module);
@ -177,13 +175,14 @@ var Loader = (function () {
* @param {string} fileName Path of the file we want to load. * @param {string} fileName Path of the file we want to load.
* @param {Function} callback Function called when done. * @param {Function} callback Function called when done.
*/ */
var loadFile = function (fileName, callback) { const loadFile = function (fileName, callback) {
var extension = fileName.slice((Math.max(0, fileName.lastIndexOf(".")) || Infinity) + 1); const extension = fileName.slice((Math.max(0, fileName.lastIndexOf(".")) || Infinity) + 1);
let script, stylesheet;
switch (extension.toLowerCase()) { switch (extension.toLowerCase()) {
case "js": case "js":
Log.log("Load script: " + fileName); Log.log("Load script: " + fileName);
var script = document.createElement("script"); script = document.createElement("script");
script.type = "text/javascript"; script.type = "text/javascript";
script.src = fileName; script.src = fileName;
script.onload = function () { script.onload = function () {
@ -202,7 +201,7 @@ var Loader = (function () {
break; break;
case "css": case "css":
Log.log("Load stylesheet: " + fileName); Log.log("Load stylesheet: " + fileName);
var stylesheet = document.createElement("link"); stylesheet = document.createElement("link");
stylesheet.rel = "stylesheet"; stylesheet.rel = "stylesheet";
stylesheet.type = "text/css"; stylesheet.type = "text/css";
stylesheet.href = fileName; stylesheet.href = fileName;