buildThemes.ts

 1import * as fs from "fs";
 2import * as path from "path";
 3import app from "./styleTree/app";
 4import { dark as caveDark, light as caveLight } from "./themes/cave";
 5import dark from "./themes/dark";
 6import light from "./themes/light";
 7import { dark as solarizedDark, light as solarizedLight } from "./themes/solarized";
 8import { dark as sulphurpoolDark, light as sulphurpoolLight } from "./themes/sulphurpool";
 9import snakeCase from "./utils/snakeCase";
10
11const themes = [
12  dark, light,
13  caveDark, caveLight,
14  solarizedDark, solarizedLight,
15  sulphurpoolDark, sulphurpoolLight
16];
17
18for (let theme of themes) {
19  let styleTree = snakeCase(app(theme));
20  let styleTreeJSON = JSON.stringify(styleTree, null, 2);
21  let outPath = path.resolve(
22    `${__dirname}/../../assets/themes/${theme.name}.json`
23  );
24  fs.writeFileSync(outPath, styleTreeJSON);
25  console.log(`- ${outPath} created`);
26}