generateSassVariableFiles.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import fs from 'fs';
  2. import darkTheme from '@grafana/ui/src/themes/dark';
  3. import lightTheme from '@grafana/ui/src/themes/light';
  4. import { darkThemeVarsTemplate } from '@grafana/ui/src/themes/_variables.dark.scss.tmpl';
  5. import { lightThemeVarsTemplate } from '@grafana/ui/src/themes/_variables.light.scss.tmpl';
  6. const darkThemeVariablesPath = __dirname + '/../../public/sass/_variables.dark.scss';
  7. const lightThemeVariablesPath = __dirname + '/../../public/sass/_variables.light.scss';
  8. const writeVariablesFile = async (path: string, data: string) => {
  9. return new Promise((resolve, reject) => {
  10. fs.writeFile(path, data, e => {
  11. if (e) {
  12. reject(e);
  13. } else {
  14. resolve(data);
  15. }
  16. });
  17. });
  18. };
  19. const generateSassVariableFiles = async () => {
  20. try {
  21. await Promise.all([
  22. writeVariablesFile(darkThemeVariablesPath, darkThemeVarsTemplate(darkTheme)),
  23. writeVariablesFile(lightThemeVariablesPath, lightThemeVarsTemplate(lightTheme)),
  24. ]);
  25. console.log('\nSASS variable files generated');
  26. } catch (error) {
  27. console.error('\nWriting SASS variable files failed', error);
  28. process.exit(1);
  29. }
  30. };
  31. generateSassVariableFiles();