editor: generate code languages index during build

This commit is contained in:
Abdullah Atta
2023-07-28 10:32:18 +05:00
committed by Abdullah Atta
parent 4bab279345
commit ed4d5efea6

View File

@@ -43,6 +43,21 @@ for (const name in pathsToCopy) {
}
const languagesList = await langen(ROOT_DIR, path.join(ROOT_DIR, "languages"));
const languageIndex = `export async function loadLanguage(language) {
switch (language) {
${languagesList
.map(({ filename, alias }) => {
return [
...(alias || []).map((a) => `case "${a}":`),
`case "${filename}":`,
`return typeof require === "function" ? require("./${filename}.js") : await import("./${filename}.js");`
].join("\n");
})
.join("\n\n")}
}
}`;
fs.writeFileSync(path.join(ROOT_DIR, "languages", "index.js"), languageIndex);
fs.writeFileSync(
path.join(ROOT_DIR, "src", "extensions", "code-block", "languages.json"),