Moved to more async-await approach a L10N parser

This commit is contained in:
Alexander Cerutti
2020-09-05 23:11:05 +02:00
parent 40437e6275
commit 8f6667d97f

View File

@@ -125,24 +125,24 @@ export async function getModelFolderContents(model: string): Promise<Partitioned
// Reading concurrently localizations folder // Reading concurrently localizations folder
// and their files and their buffers // and their files and their buffers
const L10N_FilesListByFolder: Array<BundleUnit> = await Promise.all( const L10N_FilesListByFolder: Array<BundleUnit> = await Promise.all(
l10nFolders.map(folderPath => { l10nFolders.map(async folderPath => {
// Reading current folder // Reading current folder
const currentLangPath = path.join(modelPath, folderPath); const currentLangPath = path.join(modelPath, folderPath);
return readDir(currentLangPath)
.then(files => { const files = await readDir(currentLangPath);
// Transforming files path to a model-relative path // Transforming files path to a model-relative path
const validFiles = removeHidden(files) const validFiles = removeHidden(files)
.map(file => path.join(currentLangPath, file)); .map(file => path.join(currentLangPath, file));
// Getting all the buffers from file paths // Getting all the buffers from file paths
return Promise.all([ const buffers = await Promise.all(
...validFiles.map(file => validFiles.map(file => readFile(file).catch(() => Buffer.alloc(0)))
readFile(file).catch(() => Buffer.alloc(0)) );
)
]).then(buffers =>
// Assigning each file path to its buffer // Assigning each file path to its buffer
// and discarding the empty ones // and discarding the empty ones
validFiles.reduce<BundleUnit>((acc, file, index) => {
return validFiles.reduce<BundleUnit>((acc, file, index) => {
if (!buffers[index].length) { if (!buffers[index].length) {
return acc; return acc;
} }
@@ -150,10 +150,11 @@ export async function getModelFolderContents(model: string): Promise<Partitioned
const fileComponents = file.split(path.sep); const fileComponents = file.split(path.sep);
const fileName = fileComponents[fileComponents.length - 1]; const fileName = fileComponents[fileComponents.length - 1];
return { ...acc, [fileName]: buffers[index] }; return {
}, {}) ...acc,
); [fileName]: buffers[index]
}); };
}, {});
}) })
); );
@@ -168,7 +169,7 @@ export async function getModelFolderContents(model: string): Promise<Partitioned
l10nBundle l10nBundle
}; };
} catch (err) { } catch (err) {
if (err.code && err.code === "ENOENT") { if (err?.code === "ENOENT") {
if (err.syscall === "open") { if (err.syscall === "open") {
// file opening failed // file opening failed
throw new Error(formatMessage("MODELF_NOT_FOUND", err.path)) throw new Error(formatMessage("MODELF_NOT_FOUND", err.path))