|
1 | 1 | // Tasks to compress |
2 | 2 |
|
| 3 | +import { constants } from "node:zlib"; |
3 | 4 | import gulp from "gulp"; |
| 5 | +import brotli from "gulp-brotli"; |
4 | 6 | import zopfli from "gulp-zopfli-green"; |
5 | 7 | import paths from "../paths.cjs"; |
6 | 8 |
|
| 9 | +const filesGlob = "*.{js,json,css,svg,xml}"; |
| 10 | +const brotliOptions = { |
| 11 | + skipLarger: true, |
| 12 | + params: { |
| 13 | + [constants.BROTLI_PARAM_QUALITY]: constants.BROTLI_MAX_QUALITY, |
| 14 | + }, |
| 15 | +}; |
7 | 16 | const zopfliOptions = { threshold: 150 }; |
8 | 17 |
|
9 | | -const compressDist = (rootDir) => |
| 18 | +const compressDistBrotli = (rootDir, modernDir) => |
10 | 19 | gulp |
11 | | - .src([ |
12 | | - `${rootDir}/**/*.{js,json,css,svg,xml}`, |
13 | | - `${rootDir}/{authorize,onboarding}.html`, |
14 | | - ]) |
| 20 | + .src([`${modernDir}/**/${filesGlob}`, `${rootDir}/sw-modern.js`], { |
| 21 | + base: rootDir, |
| 22 | + }) |
| 23 | + .pipe(brotli(brotliOptions)) |
| 24 | + .pipe(gulp.dest(rootDir)); |
| 25 | + |
| 26 | +const compressDistZopfli = (rootDir, modernDir) => |
| 27 | + gulp |
| 28 | + .src( |
| 29 | + [ |
| 30 | + `${rootDir}/**/${filesGlob}`, |
| 31 | + `!${modernDir}/**/${filesGlob}`, |
| 32 | + `!${rootDir}/sw-modern.js`, |
| 33 | + `${rootDir}/{authorize,onboarding}.html`, |
| 34 | + ], |
| 35 | + { base: rootDir } |
| 36 | + ) |
15 | 37 | .pipe(zopfli(zopfliOptions)) |
16 | 38 | .pipe(gulp.dest(rootDir)); |
17 | 39 |
|
18 | | -gulp.task("compress-app", () => compressDist(paths.app_output_root)); |
19 | | -gulp.task("compress-hassio", () => compressDist(paths.hassio_output_root)); |
| 40 | +const compressAppBrotli = () => |
| 41 | + compressDistBrotli(paths.app_output_root, paths.app_output_latest); |
| 42 | +const compressHassioBrotli = () => |
| 43 | + compressDistBrotli(paths.hassio_output_root, paths.hassio_output_latest); |
| 44 | + |
| 45 | +const compressAppZopfli = () => |
| 46 | + compressDistZopfli(paths.app_output_root, paths.app_output_latest); |
| 47 | +const compressHassioZopfli = () => |
| 48 | + compressDistZopfli(paths.hassio_output_root, paths.hassio_output_latest); |
| 49 | + |
| 50 | +gulp.task("compress-app", gulp.parallel(compressAppBrotli, compressAppZopfli)); |
| 51 | +gulp.task( |
| 52 | + "compress-hassio", |
| 53 | + gulp.parallel(compressHassioBrotli, compressHassioZopfli) |
| 54 | +); |
0 commit comments