const components = require('../components.js');
const getLoader = require('../dependencies');
const loadedLanguages = new Set();
function loadLanguages(languages) {
if (languages === undefined) {
languages = Object.keys(components.languages).filter(l => l != 'meta');
} else if (!Array.isArray(languages)) {
languages = [languages];
}
const loaded = [...loadedLanguages, ...Object.keys(Prism.languages)];
getLoader(components, languages, loaded).load(lang => {
if (!(lang in components.languages)) {
if (!loadLanguages.silent) {
console.warn('Language does not exist: ' + lang);
}
return;
}
const pathToLanguage = './prism-' + lang;
delete require.cache[require.resolve(pathToLanguage)];
delete Prism.languages[lang];
require(pathToLanguage);
loadedLanguages.add(lang);
});
}
loadLanguages.silent = false;
module.exports = loadLanguages;