flow-coverage-report
Version:
Generate an HTML report of the flow coverage data
117 lines (96 loc) • 4.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _path = _interopRequireDefault(require("path"));
var _badgeUp = _interopRequireDefault(require("@rpl/badge-up"));
var _mkdirp = _interopRequireDefault(require("mkdirp"));
var _promisified = require("./promisified");
function saveBadgeReport(_x, _x2) {
return _saveBadgeReport.apply(this, arguments);
}
function _saveBadgeReport() {
_saveBadgeReport = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(coverageData, options) {
var percent, threshold, hasFlowErrors, generateFlowCoverageBadge, generateFlowBadge, projectDir, outputDir, flowCoverageSVG, flowSVG;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
percent = coverageData.percent;
threshold = options.threshold || 80;
hasFlowErrors = !coverageData.flowStatus.passed;
generateFlowCoverageBadge = function generateFlowCoverageBadge() {
return new Promise(function (resolve, reject) {
var color;
if (percent < threshold / 2) {
color = 'red';
} else if (percent < threshold * 5 / 8) {
color = 'orange';
} else if (percent < threshold * 6 / 8) {
color = 'yellow';
} else if (percent < threshold * 7 / 8) {
color = 'yellowgreen';
} else if (percent < threshold) {
color = 'green';
} else {
color = 'brightgreen';
}
(0, _badgeUp["default"])('flow-coverage', "".concat(percent, "%"), _badgeUp["default"].colors[color], function (err, svg) {
if (err) {
reject(err);
} else {
resolve(svg);
}
});
});
};
generateFlowBadge = function generateFlowBadge() {
return new Promise(function (resolve, reject) {
var color = hasFlowErrors ? 'red' : 'brightgreen';
var result = hasFlowErrors ? 'failing' : 'passing';
(0, _badgeUp["default"])('flow', result, _badgeUp["default"].colors[color], function (err, svg) {
if (err) {
reject(err);
} else {
resolve(svg);
}
});
});
};
projectDir = options.projectDir;
outputDir = options.outputDir || _path["default"].join(projectDir, 'flow-coverage');
_context.next = 9;
return (0, _mkdirp["default"])(outputDir);
case 9:
_context.next = 11;
return generateFlowCoverageBadge();
case 11:
flowCoverageSVG = _context.sent;
_context.next = 14;
return (0, _promisified.writeFile)(_path["default"].join(outputDir, 'flow-coverage-badge.svg'), flowCoverageSVG);
case 14:
_context.next = 16;
return generateFlowBadge();
case 16:
flowSVG = _context.sent;
_context.next = 19;
return (0, _promisified.writeFile)(_path["default"].join(outputDir, 'flow-badge.svg'), flowSVG);
case 19:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _saveBadgeReport.apply(this, arguments);
}
var ReportBadge = {
generate: saveBadgeReport
};
var _default = ReportBadge;
exports["default"] = _default;
//# sourceMappingURL=report-badge.js.map