mirror of
				https://github.com/home-assistant/frontend.git
				synced 2025-10-31 06:29:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.4 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 compressModern = (rootDir, modernDir, compress) =>
 | |
|   gulp
 | |
|     .src([`${modernDir}/**/${filesGlob}`, `${rootDir}/sw-modern.js`], {
 | |
|       base: rootDir,
 | |
|       allowEmpty: true,
 | |
|     })
 | |
|     .pipe(compress === "zopfli" ? zopfli(zopfliOptions) : brotli(brotliOptions))
 | |
|     .pipe(gulp.dest(rootDir));
 | |
| 
 | |
| const compressOther = (rootDir, modernDir, compress) =>
 | |
|   gulp
 | |
|     .src(
 | |
|       [
 | |
|         `${rootDir}/**/${filesGlob}`,
 | |
|         `!${modernDir}/**/${filesGlob}`,
 | |
|         `!${rootDir}/{sw-modern,service_worker}.js`,
 | |
|         `${rootDir}/{authorize,onboarding}.html`,
 | |
|       ],
 | |
|       { base: rootDir, allowEmpty: true }
 | |
|     )
 | |
|     .pipe(compress === "zopfli" ? zopfli(zopfliOptions) : brotli(brotliOptions))
 | |
|     .pipe(gulp.dest(rootDir));
 | |
| 
 | |
| const compressAppModernBrotli = () =>
 | |
|   compressModern(paths.app_output_root, paths.app_output_latest, "brotli");
 | |
| const compressAppModernZopfli = () =>
 | |
|   compressModern(paths.app_output_root, paths.app_output_latest, "zopfli");
 | |
| 
 | |
| const compressHassioModernBrotli = () =>
 | |
|   compressModern(
 | |
|     paths.hassio_output_root,
 | |
|     paths.hassio_output_latest,
 | |
|     "brotli"
 | |
|   );
 | |
| const compressHassioModernZopfli = () =>
 | |
|   compressModern(
 | |
|     paths.hassio_output_root,
 | |
|     paths.hassio_output_latest,
 | |
|     "zopfli"
 | |
|   );
 | |
| 
 | |
| const compressAppOtherBrotli = () =>
 | |
|   compressOther(paths.app_output_root, paths.app_output_latest, "brotli");
 | |
| const compressAppOtherZopfli = () =>
 | |
|   compressOther(paths.app_output_root, paths.app_output_latest, "zopfli");
 | |
| 
 | |
| const compressHassioOtherBrotli = () =>
 | |
|   compressOther(paths.hassio_output_root, paths.hassio_output_latest, "brotli");
 | |
| const compressHassioOtherZopfli = () =>
 | |
|   compressOther(paths.hassio_output_root, paths.hassio_output_latest, "zopfli");
 | |
| 
 | |
| gulp.task(
 | |
|   "compress-app",
 | |
|   gulp.parallel(
 | |
|     compressAppModernBrotli,
 | |
|     compressAppOtherBrotli,
 | |
|     compressAppModernZopfli,
 | |
|     compressAppOtherZopfli
 | |
|   )
 | |
| );
 | |
| gulp.task(
 | |
|   "compress-hassio",
 | |
|   gulp.parallel(
 | |
|     compressHassioModernBrotli,
 | |
|     compressHassioOtherBrotli,
 | |
|     compressHassioModernZopfli,
 | |
|     compressHassioOtherZopfli
 | |
|   )
 | |
| );
 | 
