UNPKG

@adso-ts/badges

Version:
34 lines (33 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var yargs_1 = require("yargs"); var fs_1 = require("fs"); var lodash_1 = require("lodash"); var helpers_1 = require("./helpers"); var colors_const_1 = require("./helpers/colors.const"); var source = lodash_1.get(yargs_1.argv, 'read', 'coverage/coverage-summary.json'); var destination = lodash_1.get(yargs_1.argv, 'save', 'coverage'); if (!fs_1.existsSync(destination)) { fs_1.mkdirSync(destination); } var color = function (coverage) { return coverage >= 90 ? colors_const_1.COLORS.green : coverage >= 70 ? colors_const_1.COLORS.blue : coverage >= 50 ? colors_const_1.COLORS.yellow : colors_const_1.COLORS.red; }; function coverageBadges(coveragePath, badgesPath) { helpers_1.readJson(coveragePath, 'total') .then(function (coverage) { var average = lodash_1.round(lodash_1.sumBy(lodash_1.values(coverage), 'pct') / lodash_1.size(coverage), 2); var averageBadge = helpers_1.generateBadge(average + "%", color(average)); fs_1.writeFile(badgesPath + "/average.svg", averageBadge, helpers_1.logger); return lodash_1.map(coverage, function (value, key) { var coverage = lodash_1.get(value, 'pct'); var badge = helpers_1.generateBadge(coverage + "%", color(coverage), lodash_1.upperFirst(lodash_1.toString(key))); fs_1.writeFile(badgesPath + "/" + lodash_1.toString(key) + ".svg", badge, helpers_1.logger); }); }); } coverageBadges(source, destination);