UNPKG

safe-trim

Version:

trim sting and remove zero-width-space in content

67 lines (57 loc) 1.56 kB
import fs from 'fs' import path from 'path' import Uglify from 'uglify-js' import gzipSize from 'gzip-size' export function getConfig () { const userConfig = require('./index') return userConfig } export function getSize (code) { return `${(code.length / 1024).toFixed(2)}kb` } export function blue (str) { return `\x1b[1m\x1b[34m${String(str)}\x1b[39m\x1b[22m` } export function red (str) { return `\x1b[1m\x1b[31m${String(str)}\x1b[39m\x1b[22m` } export function camelize (str) { return str.replace(/[_.-](\w|$)/g, function (_, x) { return x.toUpperCase() }) } export function getGzipSize (path) { return read(path).then(string => { return `${(gzipSize.sync(string) / 1024).toFixed(2)}kb` }) } export function write (dest, code) { const projectRoot = path.resolve(__dirname, '../') dest = path.resolve(projectRoot, dest) return new Promise((resolve, reject) => { fs.writeFile(dest, code, err => { if (err) { console.error(red(JSON.stringify(err, null, 2))) return reject(err) } console.log(`${blue(dest)} ${getSize(code)}`) resolve() }) }) } export function read (dest, code) { const projectRoot = path.resolve(__dirname, '../') dest = path.resolve(projectRoot, dest) return new Promise((resolve, reject) => { fs.readFile(dest, 'utf8', (err, data) => { if (err) { console.error(red(JSON.stringify(err, null, 2))) reject(err) } resolve(data) }) }) } export function uglify (code) { return Uglify.minify(code).code }