Files
grafana/scripts/cli/generateSassVariableFiles.ts
Jack Westbrook c9f563e576 Grafana UI: Use package.json exports for internal code (#101815)
* feat(grafana-ui): introduce development exports to prevent importing from grafana/ui/src

* refactor(theme-generation): move theme templates into scripts so themes continue to build

* refactor(frontend): replace  grafana/ui paths that use nested src with /internal or /unstable

* chore(betterer): update better results file

* feat(grafana-ui): support enterprise, remove Text component from internal

* docs(packages): update readme with exporting code conventions
2025-03-12 14:14:32 +01:00

37 lines
1.4 KiB
TypeScript

import { writeFile } from 'node:fs/promises';
import { resolve } from 'path';
import { createTheme } from '@grafana/data';
import { darkThemeVarsTemplate } from './themeTemplates/_variables.dark.scss.tmpl';
import { lightThemeVarsTemplate } from './themeTemplates/_variables.light.scss.tmpl';
import { commonThemeVarsTemplate } from './themeTemplates/_variables.scss.tmpl';
const darkThemeVariablesPath = resolve(__dirname, 'public', 'sass', '_variables.dark.generated.scss');
const lightThemeVariablesPath = resolve(__dirname, 'public', 'sass', '_variables.light.generated.scss');
const defaultThemeVariablesPath = resolve(__dirname, 'public', 'sass', '_variables.generated.scss');
async function writeVariablesFile(path: string, data: string) {
try {
await writeFile(path, data);
} catch (error) {
console.error('\nWriting SASS variable files failed', error);
process.exit(1);
}
}
async function generateSassVariableFiles() {
const darkTheme = createTheme();
const lightTheme = createTheme({ colors: { mode: 'light' } });
try {
await writeVariablesFile(darkThemeVariablesPath, darkThemeVarsTemplate(darkTheme));
await writeVariablesFile(lightThemeVariablesPath, lightThemeVarsTemplate(lightTheme));
await writeVariablesFile(defaultThemeVariablesPath, commonThemeVarsTemplate(darkTheme));
} catch (error) {
console.error('\nWriting SASS variable files failed', error);
process.exit(1);
}
}
generateSassVariableFiles();