From 62a6c312a19824a284d95d6f81d3eb5da86dbf5a Mon Sep 17 00:00:00 2001 From: Kevin J Hoerr Date: Sat, 23 Nov 2019 12:02:45 -0500 Subject: Generate report badge with color gradient --- src/formats.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/formats.ts') diff --git a/src/formats.ts b/src/formats.ts index b5a24bf..db9a188 100644 --- a/src/formats.ts +++ b/src/formats.ts @@ -1,5 +1,7 @@ interface Format { - parse_coverage: (file: Document) => number; + // returns the coverage value as %: Number(90.0), Number(100.0), Number(89.5) + parse_coverage: (file: Document) => number, + match_color: (coverage: number, stage_1: number, stage_2: number) => string, } interface FormatList { @@ -12,12 +14,23 @@ interface FormatObj { get_format: (format: string) => Format, } +// color is a gradient from green (>=stage_1) -> yellow (stage_2) -> red. Stage values should come from metadata. +const default_color_matches = (coverage: number, stage_1: number, stage_2: number) => { + const gradient = coverage >= stage_1 ? 15 : + (coverage >= stage_2 ? + (Math.floor(coverage) - stage_2) * 16 + 15 : + 240 + Math.floor(coverage / (stage_2 / 15))); + return gradient.toString(16) + "0"; +}; + const FormatsObj: FormatObj = { formats: { tarpaulin: { parse_coverage: (file: Document) => { + //TODO parse coverage from file (example?) return 0.0; - } + }, + match_color: default_color_matches, }, }, -- cgit