From 6b6d7ee30351d5e4dd7fb4d7157f6bf0011b0125 Mon Sep 17 00:00:00 2001 From: Elijah Manor Date: Thu, 4 Aug 2016 00:57:01 -0500 Subject: [PATCH] Adjust colors and account for unicode when padding --- package.json | 1 + scripts/build.js | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index e80008d8458..0dbaf6a6012 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "promise": "7.1.1", "recursive-readdir": "^2.0.0", "rimraf": "2.5.4", + "strip-ansi": "^3.0.1", "style-loader": "0.13.1", "url-loader": "0.5.7", "webpack": "1.13.1", diff --git a/scripts/build.js b/scripts/build.js index 11421deaa73..be1f40e4a4d 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -19,6 +19,7 @@ var webpack = require('webpack'); var config = require('../config/webpack.config.prod'); var paths = require('../config/paths'); var recursive = require('recursive-readdir'); +var stripAnsi = require('strip-ansi'); function removeFileNameHash(fileName) { return fileName.replace(paths.appBuild, '') @@ -28,13 +29,17 @@ function removeFileNameHash(fileName) { } function sizeDifference(currentSize, previousSize) { - if (previousSize === undefined) { return ''; } + var FIFTY_KILOBYTES = 1024 * 50; var difference = currentSize - previousSize; - var fileSize = filesize(difference); - if (difference > 0) { + var fileSize = !Number.isNaN(difference) ? filesize(difference) : 0; + if (difference >= FIFTY_KILOBYTES) { return chalk.red('+' + fileSize); - } else if (difference <= 0){ - return chalk.green((difference === 0 ? '+' : '') + fileSize); + } else if (difference < FIFTY_KILOBYTES && difference > 0) { + return chalk.yellow('+' + fileSize); + } else if (difference < 0) { + return chalk.green(fileSize); + } else { + return ''; } } @@ -86,16 +91,17 @@ function build(previousSizeMap) { assets.sort((a, b) => b.size - a.size); var longestSizeLabelLength = Math.max.apply(null, - assets.map(a => a.sizeLabel.length) + assets.map(a => stripAnsi(a.sizeLabel).length) ); assets.forEach(asset => { var sizeLabel = asset.sizeLabel; - if (sizeLabel.length < longestSizeLabelLength) { - var rightPadding = ' '.repeat(longestSizeLabelLength - sizeLabel.length); + var sizeLength = stripAnsi(sizeLabel).length; + if (sizeLength < longestSizeLabelLength) { + var rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength); sizeLabel += rightPadding; } console.log( - ' ' + chalk.yellow(sizeLabel) + + ' ' + sizeLabel + ' ' + chalk.dim(asset.folder + path.sep) + chalk.cyan(asset.name) ); });