colorSchemes.ts

 1import fs from "fs";
 2import path from "path";
 3import { ColorScheme } from "./themes/common/colorScheme";
 4
 5const colorSchemes: ColorScheme[] = [];
 6export default colorSchemes;
 7
 8const internalColorSchemes: ColorScheme[] = [];
 9export { internalColorSchemes };
10
11const experimentalColorSchemes: ColorScheme[] = [];
12export { experimentalColorSchemes };
13
14function fillColorSchemes(themesPath: string, colorSchemes: ColorScheme[]) {
15  for (const fileName of fs.readdirSync(themesPath)) {
16    if (fileName == "template.ts") continue;
17    const filePath = path.join(themesPath, fileName);
18
19    if (fs.statSync(filePath).isFile()) {
20      const colorScheme = require(filePath);
21      if (colorScheme.dark) colorSchemes.push(colorScheme.dark);
22      if (colorScheme.light) colorSchemes.push(colorScheme.light);
23    }
24  }
25}
26
27fillColorSchemes(path.resolve(`${__dirname}/themes`), colorSchemes);
28fillColorSchemes(
29  path.resolve(`${__dirname}/themes/internal`),
30  internalColorSchemes
31);
32fillColorSchemes(
33  path.resolve(`${__dirname}/themes/experiments`),
34  experimentalColorSchemes
35);