]> Untitled Git - lemmy-ui.git/blob - src/server/utils/build-themes-list.ts
ccf47d837e1e487d6bf1a2d908dc3d7a771d9d7e
[lemmy-ui.git] / src / server / utils / build-themes-list.ts
1 import { existsSync } from "fs";
2 import { readdir } from "fs/promises";
3
4 const extraThemesFolder =
5   process.env["LEMMY_UI_EXTRA_THEMES_FOLDER"] || "./extra_themes";
6
7 const themes: ReadonlyArray<string> = [
8   "darkly",
9   "darkly-red",
10   "darkly-compact",
11   "darkly-pureblack",
12   "litely",
13   "litely-red",
14   "litely-compact",
15   "i386",
16 ];
17
18 export async function buildThemeList(): Promise<ReadonlyArray<string>> {
19   if (existsSync(extraThemesFolder)) {
20     const dirThemes = await readdir(extraThemesFolder);
21     const cssThemes = dirThemes
22       .filter(d => d.endsWith(".css"))
23       .map(d => d.replace(".css", ""));
24     return themes.concat(cssThemes);
25   }
26   return themes;
27 }