UNPKG

1.22 kBJavaScriptView Raw
1const path = require('path')
2const chalk = require('chalk')
3const { table } = require('table')
4const getStats = require('../util/get-stats.js')
5
6module.exports = async ({ program, env }) => {
7 const data = [
8 ['Type', 'Original', 'GZipped']
9 ]
10 const results = await getStats({
11 distPath: path.join(program.cwd, './dist')
12 })
13 if (env.json) {
14 console.log(results)
15 } else {
16 data.push(['☕ Minified VPAID JS', humanSize(results.vpaidJs[0]), `~${humanSize(results.vpaidJs[1])}`])
17 data.push(['🖼 Images', humanSize(results.images[0]), `~${humanSize(results.images[1])}`])
18 data.push(['📦 Components', humanSize(results.components[0]), `~${humanSize(results.components[1])}`])
19 data.push(['🔤 Fonts', humanSize(results.fonts[0]), `~${humanSize(results.fonts[1])}`])
20 data.push([
21 '🔮 Total',
22 chalk.underline(humanSize(Object.values(results).map(val => val[0]).reduce((a, b) => a + b, 0) - results.others[0])),
23 `~${(humanSize(Object.values(results).map(val => val[1]).reduce((a, b) => a + b, 0) - results.others[1]))}`
24 ])
25 console.log(table(data))
26 }
27 return results
28}
29
30function humanSize (sizeInBytes) {
31 return `${(sizeInBytes / 1024).toFixed(2)} KB`
32}