@@ -264,13 +264,17 @@ export class CodeSizeAnalyzer {
264
264
private _log ;
265
265
private originalSize : SizeResult ;
266
266
private obfuscatedSize : SizeResult ;
267
+ private originalBytes : { total : number ; gzip : number } ;
268
+ private obfuscatedBytes : { total : number ; gzip : number } ;
267
269
private startTime : number ;
268
270
private endTime : number ;
269
271
270
272
constructor ( log : Log ) {
271
273
this . _log = log ;
272
274
this . originalSize = this . createEmptySizeResult ( ) ;
273
275
this . obfuscatedSize = this . createEmptySizeResult ( ) ;
276
+ this . originalBytes = { total : 0 , gzip : 0 } ;
277
+ this . obfuscatedBytes = { total : 0 , gzip : 0 } ;
274
278
this . startTime = 0 ;
275
279
this . endTime = 0 ;
276
280
}
@@ -284,16 +288,23 @@ export class CodeSizeAnalyzer {
284
288
285
289
start ( originalBundleList : BundleList ) : void {
286
290
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 ;
288
294
}
289
295
290
296
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 ;
292
300
this . endTime = performance . now ( ) ;
293
301
this . logResult ( ) ;
294
302
}
295
303
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
+ } {
297
308
const { totalSize, gzipSize } = bundleList . reduce (
298
309
( acc , [ , bundleItem ] ) => {
299
310
if ( bundleItem . code ) {
@@ -307,25 +318,29 @@ export class CodeSizeAnalyzer {
307
318
) ;
308
319
309
320
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
+ } ,
312
329
} ;
313
330
}
314
331
315
332
private analyze ( ) : string {
316
- const { originalSize, obfuscatedSize } = this ;
333
+ const { originalSize, obfuscatedSize, originalBytes , obfuscatedBytes } = this ;
317
334
318
335
const consume = formatTime ( this . endTime - this . startTime ) ;
319
336
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' ;
324
340
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' ;
329
344
330
345
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 } %)` ;
331
346
}
0 commit comments