mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-28 12:12:20 +00:00
Use es6 notation in loader
This commit is contained in:
parent
dd366f35a8
commit
5fe654c19d
69
js/loader.js
69
js/loader.js
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user