UNPKG

flow-coverage-report

Version:

Generate an HTML report of the flow coverage data

117 lines (96 loc) 4.09 kB
'use strict'; 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