egirlskey/packages/frontend/.storybook/preload-theme.ts

40 lines
755 B
TypeScript
Raw Normal View History

2023-03-19 13:22:14 +00:00
import { readFile, writeFile } from 'node:fs/promises';
import { resolve } from 'node:path';
import * as JSON5 from 'json5';
2023-03-20 17:05:00 +00:00
const keys = [
'_dark',
'_light',
'l-light',
'l-coffee',
'l-apricot',
'l-rainy',
'l-botanical',
'l-vivid',
'l-cherry',
'l-sushi',
'l-u0',
'd-dark',
'd-persimmon',
'd-astro',
'd-future',
'd-botanical',
'd-green-lime',
'd-green-orange',
'd-cherry',
'd-ice',
'd-u0',
]
Promise.all(keys.map((key) => readFile(resolve(__dirname, `../src/themes/${key}.json5`), 'utf8'))).then((sources) => {
2023-03-19 13:22:14 +00:00
writeFile(
2023-03-20 17:05:00 +00:00
resolve(__dirname, './themes.ts'),
2023-03-19 13:22:14 +00:00
`export default ${JSON.stringify(
2023-03-20 17:05:00 +00:00
Object.fromEntries(sources.map((source, i) => [keys[i], JSON5.parse(source)])),
2023-03-19 13:22:14 +00:00
undefined,
2,
)} as const;`,
'utf8'
);
});