From 4693ee5e33fb4e9f5f22569a01953e9a50be99c9 Mon Sep 17 00:00:00 2001 From: Sophie Alpert Date: Wed, 21 Feb 2018 15:48:37 -0800 Subject: [PATCH] Format danger percents better (#12256) Test Plan: yolo? yarn danger pr didn't give me any useful output. :\ --- dangerfile.js | 17 ++++++++++++----- scripts/rollup/stats.js | 27 +++++++++++++-------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/dangerfile.js b/dangerfile.js index dd135c3fddb5..af407d112474 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -56,12 +56,19 @@ function generateMDTable(headers, body) { * @param {string[]} headers */ function addPercent(change, includeEmoji) { - if (change > 0 && includeEmoji) { - return `:small_red_triangle:+${change}%`; - } else if (change > 0) { - return `+${change}%`; + if (!isFinite(change)) { + // When a new package is created + return 'n/a'; + } + const formatted = (change * 100).toFixed(1); + if (/^-|^0(?:\.0+)$/.test(formatted)) { + return `${formatted}%`; } else { - return `${change}%`; + if (includeEmoji) { + return `:small_red_triangle:+${formatted}%`; + } else { + return `+${formatted}%`; + } } } diff --git a/scripts/rollup/stats.js b/scripts/rollup/stats.js index 125e5e6717bf..f21032f360f0 100644 --- a/scripts/rollup/stats.js +++ b/scripts/rollup/stats.js @@ -20,21 +20,20 @@ function saveResults() { ); } -function percentChange(prev, current) { - const change = Math.floor((current - prev) / prev * 100); - // When a new package is created - if (isFinite(change)) { - return change; - } else { - return 100; - } +function fractionalChange(prev, current) { + return (current - prev) / prev; } function percentChangeString(change) { - if (change > 0) { - return chalk.red.bold(`+${change} %`); - } else if (change <= 0) { - return chalk.green.bold(change + ' %'); + if (!isFinite(change)) { + // When a new package is created + return 'n/a'; + } + const formatted = (change * 100).toFixed(1); + if (/^-|^0(?:\.0+)$/.test(formatted)) { + return `${formatted}%`; + } else { + return `+${formatted}%`; } } @@ -72,10 +71,10 @@ function generateResultsArray(current, prevResults) { packageName: result.packageName, prevSize: filesize(prevSize), prevFileSize: filesize(size), - prevFileSizeChange: percentChange(prevSize, size), + prevFileSizeChange: fractionalChange(prevSize, size), prevGzip: filesize(prevGzip), prevGzipSize: filesize(gzip), - prevGzipSizeChange: percentChange(prevGzip, gzip), + prevGzipSizeChange: fractionalChange(prevGzip, gzip), }; // Strip any nulls })