#!/usr/bin/env node
const uglify = require('uglify-js')
const { gzipSync } = require('zlib')
const { readFileSync, writeFileSync } = require('fs')
const { resolve } = require('path')
const { execSync } = require('child_process')
const getSize = bundle => {
const compressed = uglify.minify(bundle.toString(), { ie8: true })
if (compressed.error) throw compressed.error
const gzipped = gzipSync(compressed.code)
const kb = (gzipped.length / 1000).toFixed(2)
return kb
}
const insert = kb => {
const readme = readFileSync(resolve(__dirname, '../README.md'), 'utf8')
const replaced = readme.replace(
/(![).+(kB](https://img.shields.io/badge/size-).*(kB-green.svg))/,
$1${kb}$2${kb}$3
)
writeFileSync(resolve(__dirname, '../README.md'), replaced, 'utf8')
}
const kb = getSize(execSync('./bin/bundle'))
insert(kb)
console.log(inserted compressed/gzipped size (${kb}kB) into readme
)