@samitouri / QOS-React / commits / 4ca7855ca0

Highlight production bundles in bold in the Danger integration comment (#12054)

* update Danger integration comments * update Danger integration comments * revised codes for unconditional call * update setBoldness parameter

Claire L committed Jan 19, 2018 at 13:07 UTC 4ca7855ca062d5d7dfca83c86acf46731e1e57ef
1 file changed +33 -17
dangerfile.js
+33 -17
@@ -36,14 +36,24 @@ function generateMDTable(headers, body) {
36 * Generates a user-readable string from a percentage change
37 * @param {string[]} headers
38 */
39 -function emojiPercent(change) {
40 - if (change > 0) {
39 +function addPercent(change, includeEmoji) {
40 + if (change > 0 && includeEmoji) {
41 return `:small_red_triangle:+${change}%`;
42 - } else if (change <= 0) {
42 + } else if (change > 0) {
43 + return `+${change}%`;
44 + } else {
45 return `${change}%`;
46 }
47 }
48
49 +function setBoldness(row, isBold) {
50 + if (isBold) {
51 + return row.map(element => `**${element}**`);
52 + } else {
53 + return row;
54 + }
55 +}
56 +
57 // Grab the results.json before we ran CI via the GH API
58 // const baseMerge = danger.github.pr.base.sha
59 const parentOfOldestCommit = danger.git.commits[0].parents[0];
@@ -80,8 +90,8 @@ fetch(commitURL(parentOfOldestCommit)).then(async response => {
90 reactProd.prevFileSizeChange !== 0 ||
91 reactProd.prevGzipSizeChange !== 0
92 ) {
83 - const changeSize = emojiPercent(reactProd.prevFileSizeChange);
84 - const changeGzip = emojiPercent(reactProd.prevGzipSizeChange);
93 + const changeSize = addPercent(reactProd.prevFileSizeChange, true);
94 + const changeGzip = addPercent(reactProd.prevGzipSizeChange, true);
95 markdown(`React: size: ${changeSize}, gzip: ${changeGzip}`);
96 }
97 }
@@ -94,8 +104,8 @@ fetch(commitURL(parentOfOldestCommit)).then(async response => {
104 reactDOMProd.prevFileSizeChange !== 0 ||
105 reactDOMProd.prevGzipSizeChange !== 0
106 ) {
97 - const changeSize = emojiPercent(reactDOMProd.prevFileSizeChange);
98 - const changeGzip = emojiPercent(reactDOMProd.prevGzipSizeChange);
107 + const changeSize = addPercent(reactDOMProd.prevFileSizeChange, true);
108 + const changeGzip = addPercent(reactDOMProd.prevGzipSizeChange, true);
109 markdown(`ReactDOM: size: ${changeSize}, gzip: ${changeGzip}`);
110 }
111 }
@@ -120,16 +130,22 @@ fetch(commitURL(parentOfOldestCommit)).then(async response => {
130 'ENV',
131 ];
132
123 - const mdRows = changedFiles.map(r => [
124 - r.filename,
125 - emojiPercent(r.prevFileSizeChange),
126 - emojiPercent(r.prevGzipSizeChange),
127 - r.prevSize,
128 - r.prevFileSize,
129 - r.prevGzip,
130 - r.prevGzipSize,
131 - r.bundleType,
132 - ]);
133 + const mdRows = changedFiles.map(r => {
134 + const isProd = r.bundleType.includes('PROD');
135 + return setBoldness(
136 + [
137 + r.filename,
138 + addPercent(r.prevFileSizeChange, isProd),
139 + addPercent(r.prevGzipSizeChange, isProd),
140 + r.prevSize,
141 + r.prevFileSize,
142 + r.prevGzip,
143 + r.prevGzipSize,
144 + r.bundleType,
145 + ],
146 + isProd
147 + );
148 + });
149
150 allTables.push(`\n## ${name}`);
151 allTables.push(generateMDTable(mdHeaders, mdRows));