perf: dont fs.open if plugin doesnt have language namespace (#9893)

closes #9892
isekai-main
Barış Soner Uşaklı 3 years ago committed by GitHub
parent b0a24d6dd5
commit 1feb111ade
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -99,7 +99,12 @@ async function buildNamespaceLanguage(lang, namespace, plugins) {
}
async function addPlugin(translations, pluginData, lang, namespace) {
const pluginLanguages = path.join(paths.nodeModules, pluginData.id, pluginData.languages);
// if plugin doesn't have this namespace no need to continue
if (pluginData.languageData && !pluginData.languageData.namespaces.includes(namespace)) {
return;
}
const pathToPluginLanguageFolder = path.join(paths.nodeModules, pluginData.id, pluginData.languages);
const defaultLang = pluginData.defaultLang || 'en-GB';
// for each plugin, fallback in this order:
@ -116,7 +121,7 @@ async function addPlugin(translations, pluginData, lang, namespace) {
for (const language of langs) {
/* eslint-disable no-await-in-loop */
await assignFileToTranslations(translations, path.join(pluginLanguages, language, `${namespace}.json`));
await assignFileToTranslations(translations, path.join(pathToPluginLanguageFolder, language, `${namespace}.json`));
}
}

@ -3,6 +3,7 @@
const fs = require('fs');
const path = require('path');
const winston = require('winston');
const _ = require('lodash');
const db = require('../database');
const file = require('../file');
@ -245,9 +246,8 @@ Data.getLanguageData = async function getLanguageData(pluginData) {
languages.push(language);
namespaces.push(namespace);
});
return {
languages,
namespaces,
languages: _.uniq(languages),
namespaces: _.uniq(namespaces),
};
};

@ -63,6 +63,7 @@ module.exports = function (Plugins) {
if (results.languageData) {
Plugins.languageData.languages = _.union(Plugins.languageData.languages, results.languageData.languages);
Plugins.languageData.namespaces = _.union(Plugins.languageData.namespaces, results.languageData.namespaces);
pluginData.languageData = results.languageData;
}
Plugins.pluginsData[pluginData.id] = pluginData;
}

Loading…
Cancel
Save