61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| const { memoize } = require('lodash');
 | ||
| const { OUTPUTS } = require('./constants');
 | ||
| const { getCSSPath } = require('./get_css_path');
 | ||
| const { getStartupCSS } = require('./get_startup_css');
 | ||
| const { log, die } = require('./utils');
 | ||
| const { writeStartupSCSS } = require('./write_startup_scss');
 | ||
| 
 | ||
| const memoizedCSSPath = memoize(getCSSPath);
 | ||
| 
 | ||
| const runTask = async ({ outFile, htmlPaths, cssKeys, purgeOptions = {} }) => {
 | ||
|   try {
 | ||
|     log(`Generating startup CSS for HTML files: ${htmlPaths}`);
 | ||
|     const generalCSS = await getStartupCSS({
 | ||
|       htmlPaths,
 | ||
|       cssPaths: cssKeys.map(memoizedCSSPath),
 | ||
|       purgeOptions,
 | ||
|     });
 | ||
| 
 | ||
|     log(`Writing to startup CSS...`);
 | ||
|     const startupCSSPath = writeStartupSCSS(outFile, generalCSS);
 | ||
|     log(`Finished writing to ${startupCSSPath}`);
 | ||
| 
 | ||
|     return {
 | ||
|       success: true,
 | ||
|       outFile,
 | ||
|     };
 | ||
|   } catch (e) {
 | ||
|     log(`ERROR! Unexpected error occurred while generating startup CSS for: ${outFile}`);
 | ||
|     log(e);
 | ||
| 
 | ||
|     return {
 | ||
|       success: false,
 | ||
|       outFile,
 | ||
|     };
 | ||
|   }
 | ||
| };
 | ||
| 
 | ||
| const main = async () => {
 | ||
|   const result = await Promise.all(OUTPUTS.map(runTask));
 | ||
|   const fullSuccess = result.every((x) => x.success);
 | ||
| 
 | ||
|   log('RESULTS:');
 | ||
|   log('--------');
 | ||
| 
 | ||
|   result.forEach(({ success, outFile }) => {
 | ||
|     const status = success ? '✓' : 'ⅹ';
 | ||
| 
 | ||
|     log(`${status}: ${outFile}`);
 | ||
|   });
 | ||
| 
 | ||
|   log('--------');
 | ||
| 
 | ||
|   if (fullSuccess) {
 | ||
|     log('Done!');
 | ||
|   } else {
 | ||
|     die('Some tasks have failed');
 | ||
|   }
 | ||
| };
 | ||
| 
 | ||
| main();
 |