3
path = require('path'),
4
zlib = require('zlib'),
5
{ green, blue, red, cyan } = require('chalk')
7
function getSize (code) {
8
return (code.length / 1024).toFixed(2) + 'kb'
11
module.exports.createFolder = function (folder) {
12
const dir = path.join(__dirname, '..', folder)
13
if (!fs.existsSync(dir)) {
18
module.exports.writeFile = function (dest, code, zip) {
19
const banner = dest.indexOf('.json') > -1
21
: dest.indexOf('.js') > -1
23
: dest.indexOf('.ts') > -1
27
return new Promise((resolve, reject) => {
28
function report (extra) {
29
console.log(`${banner} ${path.relative(process.cwd(), dest).padEnd(41)} ${getSize(code).padStart(8)}${extra || ''}`)
33
fs.writeFile(dest, code, err => {
34
if (err) return reject(err)
36
zlib.gzip(code, (err, zipped) => {
37
if (err) return reject(err)
38
report(` (gzipped: ${getSize(zipped).padStart(8)})`)
48
module.exports.readFile = function (file) {
49
return fs.readFileSync(file, 'utf-8')
52
module.exports.logError = function (err) {
53
console.error('\n' + red('[Error]'), err)