build(#10336): control themes
This commit is contained in:
@@ -2,19 +2,35 @@ import { readFile, writeFile } from 'node:fs/promises';
|
||||
import { resolve } from 'node:path';
|
||||
import * as JSON5 from 'json5';
|
||||
|
||||
Promise.all([
|
||||
readFile(resolve(__dirname, '../src/themes/_light.json5'), 'utf8'),
|
||||
readFile(resolve(__dirname, '../src/themes/l-light.json5'), 'utf8'),
|
||||
]).then((sources) => {
|
||||
const base = JSON5.parse(sources[0]);
|
||||
const theme = JSON5.parse(sources[1]);
|
||||
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) => {
|
||||
writeFile(
|
||||
resolve(__dirname, './theme.ts'),
|
||||
resolve(__dirname, './themes.ts'),
|
||||
`export default ${JSON.stringify(
|
||||
Object.assign(theme, {
|
||||
base: undefined,
|
||||
props: Object.assign(base.props, theme.props),
|
||||
}),
|
||||
Object.fromEntries(sources.map((source, i) => [keys[i], JSON5.parse(source)])),
|
||||
undefined,
|
||||
2,
|
||||
)} as const;`,
|
||||
|
Reference in New Issue
Block a user