MCPcopy Index your code
hub / github.com/developit/optimize-plugin / printSizes

Function printSizes

test/_util.js:30–58  ·  view source on GitHub ↗
(assets, name, console)

Source from the content-addressed store, hash-verified

28const gzipSize = async x => (await gzip(x)).byteLength;
29
30export async function printSizes (assets, name, console) {
31 let modernSize = 0;
32 let legacySize = 0;
33 const prettyBytes = (size) => {
34 if (size > 1500) return (size / 1000).toFixed(2) + 'kB';
35 return size + 'b';
36 };
37 const showSize = async (file) => {
38 const size = await gzipSize(assets[file]);
39 let str = `\n ${file}: ${prettyBytes(size)}`;
40 if (file.match(/.legacy/)) {
41 legacySize += size;
42 } else {
43 modernSize += size;
44 const legacyName = file.replace(/\.js$/, '.legacy.js');
45 if (assets[legacyName]) str += await showSize(legacyName);
46 }
47 return str;
48 };
49
50 let str = `SIZES${name ? ` for ${name}` : ''}:`;
51 for (const i in assets) {
52 if (i.match(/.legacy/)) continue;
53 str += await showSize(i);
54 }
55 str += await showSize('polyfills.legacy.js');
56 str += `\n> Total: ${prettyBytes(modernSize)} - ${prettyBytes(legacySize - modernSize)} (${Math.round((legacySize - modernSize) / legacySize * 100)}%) smaller in modern browsers.`;
57 console.log(str);
58}
59
60export function runWebpack (webpack, fixture, { output = {}, plugins = [], module = {}, resolve = {}, ...config } = {}, console) {
61 return run(callback => webpack({

Callers 1

index.test.jsFile · 0.90

Calls 2

showSizeFunction · 0.85
prettyBytesFunction · 0.85

Tested by

no test coverage detected