From 1eeccb9153fdaa18027574910bd438fa0eae8f69 Mon Sep 17 00:00:00 2001 From: Hannu Lyytikainen Date: Mon, 26 Nov 2018 13:40:18 +0200 Subject: [PATCH] Wrap file writing to a Promise --- translations | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/translations b/translations index 93b7b5f9..031a3708 100755 --- a/translations +++ b/translations @@ -151,13 +151,10 @@ const run = () => { const sorted = sort(target); const data = JSON.stringify(sorted, null, 2); - fs.writeFile(filePath(targetLang), data, err => { - if (err) { - throw err; - } - console.log(chalk.bold('The translation file is updated')); - run(); - }); + return updateTranslationsFile(data, targetLang); + }) + .then(() => { + run(); }) .catch(err => { if (err instanceof BreakSignal) { @@ -257,4 +254,24 @@ const confirmTranslation = (targetLang, key, translation) => { ]); }; +/** + * Update translations file. + * + * @param {String} data String data to be written to file + * @param {String} targetLang Language code of the translation file + * + * @return a Promise that resolves when file is written + */ +const updateTranslationsFile = (data, targetLang) => { + return new Promise((resolve, reject) => { + fs.writeFile(filePath(targetLang), data, err => { + if (err) { + reject(err); + } + console.log(chalk.bold('The translation file is updated')); + resolve(); + }); + }); +}; + run();