mirror of
				https://github.com/home-assistant/frontend.git
				synced 2025-10-31 14:39:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Tasks to compress
 | |
| 
 | |
| import { constants } from "node:zlib";
 | |
| import gulp from "gulp";
 | |
| import brotli from "gulp-brotli";
 | |
| import zopfli from "gulp-zopfli-green";
 | |
| import paths from "../paths.cjs";
 | |
| 
 | |
| const filesGlob = "*.{js,json,css,svg,xml}";
 | |
| const brotliOptions = {
 | |
|   skipLarger: true,
 | |
|   params: {
 | |
|     [constants.BROTLI_PARAM_QUALITY]: constants.BROTLI_MAX_QUALITY,
 | |
|   },
 | |
| };
 | |
| const zopfliOptions = { threshold: 150 };
 | |
| 
 | |
| const compressDistBrotli = (rootDir, modernDir, compressServiceWorker = true) =>
 | |
|   gulp
 | |
|     .src(
 | |
|       [
 | |
|         `${modernDir}/**/${filesGlob}`,
 | |
|         compressServiceWorker ? `${rootDir}/sw-modern.js` : undefined,
 | |
|       ].filter(Boolean),
 | |
|       {
 | |
|         base: rootDir,
 | |
|       }
 | |
|     )
 | |
|     .pipe(brotli(brotliOptions))
 | |
|     .pipe(gulp.dest(rootDir));
 | |
| 
 | |
| const compressDistZopfli = (rootDir, modernDir, compressModern = false) =>
 | |
|   gulp
 | |
|     .src(
 | |
|       [
 | |
|         `${rootDir}/**/${filesGlob}`,
 | |
|         compressModern ? undefined : `!${modernDir}/**/${filesGlob}`,
 | |
|         `!${rootDir}/{sw-modern,service_worker}.js`,
 | |
|         `${rootDir}/{authorize,onboarding}.html`,
 | |
|       ].filter(Boolean),
 | |
|       { base: rootDir }
 | |
|     )
 | |
|     .pipe(zopfli(zopfliOptions))
 | |
|     .pipe(gulp.dest(rootDir));
 | |
| 
 | |
| const compressAppBrotli = () =>
 | |
|   compressDistBrotli(paths.app_output_root, paths.app_output_latest);
 | |
| const compressHassioBrotli = () =>
 | |
|   compressDistBrotli(
 | |
|     paths.hassio_output_root,
 | |
|     paths.hassio_output_latest,
 | |
|     false
 | |
|   );
 | |
| 
 | |
| const compressAppZopfli = () =>
 | |
|   compressDistZopfli(paths.app_output_root, paths.app_output_latest);
 | |
| const compressHassioZopfli = () =>
 | |
|   compressDistZopfli(
 | |
|     paths.hassio_output_root,
 | |
|     paths.hassio_output_latest,
 | |
|     true
 | |
|   );
 | |
| 
 | |
| gulp.task("compress-app", gulp.parallel(compressAppBrotli, compressAppZopfli));
 | |
| gulp.task(
 | |
|   "compress-hassio",
 | |
|   gulp.parallel(compressHassioBrotli, compressHassioZopfli)
 | |
| );
 | 
