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
14
15function fillColorSchemes(themesPath: string, colorSchemes: ColorScheme[]) {
16  for (const fileName of fs.readdirSync(themesPath)) {
17    if (fileName == "template.ts") continue;
18    const filePath = path.join(themesPath, fileName);
19
20    if (fs.statSync(filePath).isFile()) {
21      const colorScheme = require(filePath);
22      if (colorScheme.dark) colorSchemes.push(colorScheme.dark);
23      if (colorScheme.light) colorSchemes.push(colorScheme.light);
24    }
25  }
26}
27
28fillColorSchemes(path.resolve(`${__dirname}/themes`), colorSchemes)
29fillColorSchemes(path.resolve(`${__dirname}/themes/internal`), internalColorSchemes)
30fillColorSchemes(path.resolve(`${__dirname}/themes/experiments`), experimentalColorSchemes)
31