feat: Add zip compression settings (#605)

This commit is contained in:
Bas van Zanten
2024-04-12 15:59:54 +02:00
committed by GitHub
parent c09994263e
commit 3119c04e10
4 changed files with 20 additions and 1 deletions
@@ -223,6 +223,7 @@ function resolveZipConfig(
artifactTemplate: '{{name}}-{{version}}-{{browser}}.zip',
sourcesRoot: root,
includeSources: [],
compressionLevel: 9,
...mergedConfig.zip,
excludeSources: [
'**/node_modules',
+1
View File
@@ -288,6 +288,7 @@ export const fakeResolvedConfig = fakeObjectCreator<ResolvedConfig>(() => {
name: faker.person.firstName().toLowerCase(),
downloadedPackagesDir: fakeDir(),
downloadPackages: [],
compressionLevel: 9,
},
transformManifest: () => {},
userConfigMetadata: {},
+9 -1
View File
@@ -135,7 +135,15 @@ async function zipDir(
}
}
await options?.additionalWork?.(archive);
const buffer = await archive.generateAsync({ type: 'base64' });
const buffer = await archive.generateAsync({
type: 'base64',
...(wxt.config.zip.compressionLevel === 0
? { compression: 'STORE' }
: {
compression: 'DEFLATE',
compressionOptions: { level: wxt.config.zip.compressionLevel },
}),
});
await fs.writeFile(outputPath, buffer, 'base64');
}
+9
View File
@@ -202,6 +202,14 @@ export interface InlineConfig {
* ["@scope/package-name@1.1.3", "package-name@^2"]
*/
downloadPackages?: string[];
/**
* Compression level to use when zipping files.
*
* Levels: 0 (no compression) to 9 (maximum compression).
*
* @default 9
*/
compressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
};
/**
@@ -1079,6 +1087,7 @@ export interface ResolvedConfig {
sourcesRoot: string;
downloadedPackagesDir: string;
downloadPackages: string[];
compressionLevel: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
};
/**
* @deprecated Use `build:manifestGenerated` hook instead.