Skip to content

Commit 4cbb645

Browse files
author
veeck
committed
Make loadModules async
1 parent 02c6674 commit 4cbb645

2 files changed

Lines changed: 24 additions & 30 deletions

File tree

js/loader.js

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,28 @@ const Loader = (function () {
1616
/* Private Methods */
1717

1818
/**
19-
* Loops thru all modules and requests load for every module.
19+
* Loops through all modules and requests load for every module.
2020
*/
21-
const loadModules = function () {
21+
const loadModules = async function () {
2222
let moduleData = getModuleData();
2323

24-
const loadNextModule = function () {
24+
const loadNextModule = async function () {
2525
if (moduleData.length > 0) {
2626
const nextModule = moduleData[0];
27-
loadModule(nextModule, function () {
28-
moduleData = moduleData.slice(1);
29-
loadNextModule();
30-
});
27+
await loadModule(nextModule);
28+
moduleData = moduleData.slice(1);
29+
await loadNextModule();
3130
} else {
3231
// All modules loaded. Load custom.css
3332
// This is done after all the modules so we can
3433
// overwrite all the defined styles.
35-
36-
loadFile(config.customCss).then(() => {
37-
// custom.css loaded. Start all modules.
38-
startModules();
39-
});
34+
await loadFile(config.customCss);
35+
// custom.css loaded. Start all modules.
36+
startModules();
4037
}
4138
};
4239

43-
loadNextModule();
40+
await loadNextModule();
4441
};
4542

4643
/**
@@ -130,32 +127,28 @@ const Loader = (function () {
130127
};
131128

132129
/**
133-
* Load modules via ajax request and create module objects.s
130+
* Load modules via ajax request and create module objects.
134131
*
135132
* @param {object} module Information about the module we want to load.
136133
* @param {Function} callback Function called when done.
137134
*/
138-
const loadModule = function (module, callback) {
135+
const loadModule = async function (module) {
139136
const url = module.path + module.file;
140137

141-
const afterLoad = function () {
138+
const afterLoad = async function () {
142139
const moduleObject = Module.create(module.name);
143140
if (moduleObject) {
144-
bootstrapModule(module, moduleObject).then(() => {
145-
callback();
146-
});
147-
} else {
148-
callback();
141+
await bootstrapModule(module, moduleObject);
149142
}
143+
return Promise.resolve();
150144
};
151145

152146
if (loadedModuleFiles.indexOf(url) !== -1) {
153-
afterLoad();
147+
await afterLoad();
154148
} else {
155-
loadFile(url).then(() => {
156-
loadedModuleFiles.push(url);
157-
afterLoad();
158-
});
149+
await loadFile(url);
150+
loadedModuleFiles.push(url);
151+
await afterLoad();
159152
}
160153
};
161154

@@ -232,8 +225,8 @@ const Loader = (function () {
232225
/**
233226
* Load all modules as defined in the config.
234227
*/
235-
loadModules: function () {
236-
loadModules();
228+
loadModules: async function () {
229+
await loadModules();
237230
},
238231

239232
/**

js/main.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,13 +479,14 @@ const MM = (function () {
479479
/**
480480
* Main init method.
481481
*/
482-
init: function () {
482+
init: async function () {
483483
Log.info("Initializing MagicMirror².");
484484
loadConfig();
485485

486486
Log.setLogLevel(config.logLevel);
487487

488-
Translator.loadCoreTranslations(config.language).then(() => Loader.loadModules());
488+
await Translator.loadCoreTranslations(config.language);
489+
await Loader.loadModules();
489490
},
490491

491492
/**

0 commit comments

Comments
 (0)