uppy
Version:
Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:
43 lines (38 loc) • 1.1 kB
JavaScript
var path = require('path')
var chalk = require('chalk')
var glob = require('glob')
var exec = require('child_process').exec
function handleErr (err) {
console.error(chalk.red('✗ Error:'), chalk.red(err.message))
}
function gzip (file) {
return new Promise(function (resolve, reject) {
var fileName = path.basename(file)
var gzipCommand = 'gzip < ' + file + ' > ' + file + '.gz'
exec(gzipCommand, function (error, stdout, stderr) {
if (error) {
handleErr(error)
reject(error)
return
}
console.info(chalk.green('✓ Gzipped: '), chalk.magenta(fileName + '.gz'))
resolve()
})
})
}
function gzipDist () {
return new Promise(function (resolve) {
glob('./dist/**/*.*(css|js)', function (err, files) {
if (err) console.log(err)
var gzipPromises = []
files.forEach(function (file) {
gzipPromises.push(gzip(file))
})
return Promise.all(gzipPromises).then(function () {
console.info(chalk.yellow('✓ Gzipped everything yo 🎉'))
resolve()
})
})
})
}
gzipDist()