From 308774c2a6193540a228de02e52563d1c61299c5 Mon Sep 17 00:00:00 2001 From: Felix Wiedenbach Date: Fri, 29 Jan 2021 22:34:12 +0100 Subject: [PATCH] remove callback hell --- js/module.js | 34 +++++++++++++++++----------------- js/translator.js | 26 +++++++++----------------- 2 files changed, 26 insertions(+), 34 deletions(-) diff --git a/js/module.js b/js/module.js index a6e574fc..60c7200d 100644 --- a/js/module.js +++ b/js/module.js @@ -318,24 +318,24 @@ var Module = Class.extend({ const languages = Object.keys(translations); const fallbackLanguage = languages[0]; - if (languages.length > 0) { - const translationFile = translations[language]; - const translationsFallbackFile = translations[fallbackLanguage]; - - if (translationFile) { - Translator.load(this, translationFile, false, () => { - if (translationFile !== translationsFallbackFile) { - Translator.load(this, translationsFallbackFile, true, callback); - } else { - callback(); - } - }); - } else { - Translator.load(this, translationsFallbackFile, true, callback); - } - } else { - callback(); + if (languages.length === 0) { + return callback(); } + + const translationFile = translations[language]; + const translationsFallbackFile = translations[fallbackLanguage]; + + if (!translationFile) { + return Translator.load(this, translationsFallbackFile, true, callback); + } + + Translator.load(this, translationFile, false, () => { + if (translationFile !== translationsFallbackFile) { + Translator.load(this, translationsFallbackFile, true, callback); + } else { + callback(); + } + }); }, /** diff --git a/js/translator.js b/js/translator.js index 82eec53a..6cddfae1 100644 --- a/js/translator.js +++ b/js/translator.js @@ -103,26 +103,18 @@ var Translator = (function () { * @param {boolean} isFallback Flag to indicate fallback translations. * @param {Function} callback Function called when done. */ - load: function (module, file, isFallback, callback) { - if (!isFallback) { - Log.log(module.name + " - Load translation: " + file); - } else { - Log.log(module.name + " - Load translation fallback: " + file); + load(module, file, isFallback, callback) { + Log.log(`${module.name} - Load translation${isFallback && " fallback"}: ${file}`); + + if (this.translationsFallback[module.name]) { + return callback(); } - var self = this; - if (!this.translationsFallback[module.name]) { - loadJSON(module.file(file), function (json) { - if (!isFallback) { - self.translations[module.name] = json; - } else { - self.translationsFallback[module.name] = json; - } - callback(); - }); - } else { + loadJSON(module.file(file), (json) => { + const property = isFallback ? "translationsFallback" : "translations"; + this[property][module.name] = json; callback(); - } + }); }, /**