mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import * as fs from 'fs';
 | |
| import { darkThemeVarsTemplate } from '@grafana/ui/src/themes/_variables.dark.scss.tmpl';
 | |
| import { lightThemeVarsTemplate } from '@grafana/ui/src/themes/_variables.light.scss.tmpl';
 | |
| import { commonThemeVarsTemplate } from '@grafana/ui/src/themes/_variables.scss.tmpl';
 | |
| import { createTheme } from '@grafana/data';
 | |
| 
 | |
| const darkThemeVariablesPath = __dirname + '/../../public/sass/_variables.dark.generated.scss';
 | |
| const lightThemeVariablesPath = __dirname + '/../../public/sass/_variables.light.generated.scss';
 | |
| const defaultThemeVariablesPath = __dirname + '/../../public/sass/_variables.generated.scss';
 | |
| 
 | |
| const writeVariablesFile = async (path: string, data: string) => {
 | |
|   return new Promise((resolve, reject) => {
 | |
|     fs.writeFile(path, data, (e) => {
 | |
|       if (e) {
 | |
|         reject(e);
 | |
|       } else {
 | |
|         resolve(data);
 | |
|       }
 | |
|     });
 | |
|   });
 | |
| };
 | |
| 
 | |
| const generateSassVariableFiles = async () => {
 | |
|   const darkTheme = createTheme();
 | |
|   const lightTheme = createTheme({ colors: { mode: 'light' } });
 | |
| 
 | |
|   try {
 | |
|     await Promise.all([
 | |
|       writeVariablesFile(darkThemeVariablesPath, darkThemeVarsTemplate(darkTheme)),
 | |
|       writeVariablesFile(lightThemeVariablesPath, lightThemeVarsTemplate(lightTheme)),
 | |
|       writeVariablesFile(defaultThemeVariablesPath, commonThemeVarsTemplate(darkTheme)),
 | |
|     ]);
 | |
|     console.log('\nSASS variable files generated');
 | |
|   } catch (error) {
 | |
|     console.error('\nWriting SASS variable files failed', error);
 | |
|     process.exit(1);
 | |
|   }
 | |
| };
 | |
| 
 | |
| generateSassVariableFiles();
 |