aboutsummaryrefslogtreecommitdiff
path: root/src/formats.ts
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@protonmail.com>2019-11-23 12:02:45 -0500
committerKevin J Hoerr <kjhoerr@protonmail.com>2019-11-23 12:02:45 -0500
commit62a6c312a19824a284d95d6f81d3eb5da86dbf5a (patch)
treeee398cb28006ed3d988b93bd9bf0a7c64953fcaf /src/formats.ts
parenta4fdedfcac02cb53608d9d3b9e96de0526140fd7 (diff)
downloadao-coverage-62a6c312a19824a284d95d6f81d3eb5da86dbf5a.tar.gz
ao-coverage-62a6c312a19824a284d95d6f81d3eb5da86dbf5a.tar.bz2
ao-coverage-62a6c312a19824a284d95d6f81d3eb5da86dbf5a.zip
Generate report badge with color gradient
Diffstat (limited to 'src/formats.ts')
-rw-r--r--src/formats.ts17
1 files changed, 15 insertions, 2 deletions
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,
},
},