@@ -264,13 +264,17 @@ export class CodeSizeAnalyzer {
264264 private _log ;
265265 private originalSize : SizeResult ;
266266 private obfuscatedSize : SizeResult ;
267+ private originalBytes : { total : number ; gzip : number } ;
268+ private obfuscatedBytes : { total : number ; gzip : number } ;
267269 private startTime : number ;
268270 private endTime : number ;
269271
270272 constructor ( log : Log ) {
271273 this . _log = log ;
272274 this . originalSize = this . createEmptySizeResult ( ) ;
273275 this . obfuscatedSize = this . createEmptySizeResult ( ) ;
276+ this . originalBytes = { total : 0 , gzip : 0 } ;
277+ this . obfuscatedBytes = { total : 0 , gzip : 0 } ;
274278 this . startTime = 0 ;
275279 this . endTime = 0 ;
276280 }
@@ -284,16 +288,23 @@ export class CodeSizeAnalyzer {
284288
285289 start ( originalBundleList : BundleList ) : void {
286290 this . startTime = performance . now ( ) ;
287- this . originalSize = this . calculateBundleSize ( originalBundleList ) ;
291+ const { size, bytes } = this . calculateBundleSize ( originalBundleList ) ;
292+ this . originalSize = size ;
293+ this . originalBytes = bytes ;
288294 }
289295
290296 end ( obfuscatedBundleList : BundleList ) : void {
291- this . obfuscatedSize = this . calculateBundleSize ( obfuscatedBundleList ) ;
297+ const { size, bytes } = this . calculateBundleSize ( obfuscatedBundleList ) ;
298+ this . obfuscatedSize = size ;
299+ this . obfuscatedBytes = bytes ;
292300 this . endTime = performance . now ( ) ;
293301 this . logResult ( ) ;
294302 }
295303
296- private calculateBundleSize ( bundleList : BundleList ) : { original : FormatSizeResult ; gzip : FormatSizeResult } {
304+ private calculateBundleSize ( bundleList : BundleList ) : {
305+ size : { original : FormatSizeResult ; gzip : FormatSizeResult } ;
306+ bytes : { total : number ; gzip : number } ;
307+ } {
297308 const { totalSize, gzipSize } = bundleList . reduce (
298309 ( acc , [ , bundleItem ] ) => {
299310 if ( bundleItem . code ) {
@@ -307,25 +318,29 @@ export class CodeSizeAnalyzer {
307318 ) ;
308319
309320 return {
310- original : formatSize ( totalSize ) ,
311- gzip : formatSize ( gzipSize ) ,
321+ size : {
322+ original : formatSize ( totalSize ) ,
323+ gzip : formatSize ( gzipSize ) ,
324+ } ,
325+ bytes : {
326+ total : totalSize ,
327+ gzip : gzipSize ,
328+ } ,
312329 } ;
313330 }
314331
315332 private analyze ( ) : string {
316- const { originalSize, obfuscatedSize } = this ;
333+ const { originalSize, obfuscatedSize, originalBytes , obfuscatedBytes } = this ;
317334
318335 const consume = formatTime ( this . endTime - this . startTime ) ;
319336
320- const percentageIncrease = (
321- ( ( obfuscatedSize . original . value - originalSize . original . value ) / originalSize . original . value )
322- * 100
323- ) . toFixed ( 2 ) ;
337+ const percentageIncrease = originalBytes . total > 0
338+ ? ( ( ( obfuscatedBytes . total - originalBytes . total ) / originalBytes . total ) * 100 ) . toFixed ( 2 )
339+ : '0.00' ;
324340
325- const gzipPercentageIncrease = (
326- ( ( obfuscatedSize . gzip . value - originalSize . gzip . value ) / originalSize . gzip . value )
327- * 100
328- ) . toFixed ( 2 ) ;
341+ const gzipPercentageIncrease = originalBytes . gzip > 0
342+ ? ( ( ( obfuscatedBytes . gzip - originalBytes . gzip ) / originalBytes . gzip ) * 100 ) . toFixed ( 2 )
343+ : '0.00' ;
329344
330345 return `✓ obfuscated in ${ consume } | 📦 ${ originalSize . original . value } ${ originalSize . original . unit } (gzip: ${ originalSize . gzip . value } ${ originalSize . gzip . unit } ) → 🔒 ${ obfuscatedSize . original . value } ${ obfuscatedSize . original . unit } (gzip: ${ obfuscatedSize . gzip . value } ${ obfuscatedSize . gzip . unit } ) | 📈 ${ percentageIncrease } % (gzip: ${ gzipPercentageIncrease } %)` ;
331346 }
0 commit comments