UNPKG

@hunterparks/betterpr

Version:

A better way to look at PRs in Bitbucket!

99 lines (98 loc) 4.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.sayGoodbye = exports.printTotalLine = exports.printRepoLine = exports.printRepoHeader = exports.printNewVersionNotice = exports.printHeader = exports.makeLink = exports.icons = exports.errorMessage = void 0; const kleur_1 = __importDefault(require("kleur")); const errorMessage = (message) => console.log(`${kleur_1.default.red().bold('Error:')} ${message}`); exports.errorMessage = errorMessage; exports.icons = { blueCircle: () => kleur_1.default.blue('●'), greenCheck: () => kleur_1.default.green('✔'), magentaQuestion: () => kleur_1.default.magenta('?'), redEx: () => kleur_1.default.red('✖'), yellowTri: () => kleur_1.default.yellow('▲'), }; const makeLink = (text, url) => { const OSC = '\u001B]'; const SEP = ';'; const BEL = '\u0007'; return [OSC, '8', SEP, SEP, url, BEL, text, OSC, '8', SEP, SEP, BEL].join(''); }; exports.makeLink = makeLink; const printHeader = (localVersion, name) => { console.log(kleur_1.default.white().italic('Welcome to:')); console.log(kleur_1.default.red(' ___ __ __ ___ ___ ')); console.log(kleur_1.default.yellow(' / _ )___ / /_/ /____ ____/ _ \\/ _ \\')); console.log(kleur_1.default.green(' / _ / -_) __/ __/ -_) __/ ___/ , _/')); console.log(kleur_1.default.cyan('/____/\\__/\\__/\\__/\\__/_/ /_/ /_/|_| \n')); console.log(kleur_1.default.italic(`${' '.repeat(7)}${kleur_1.default.magenta(`v${localVersion}`)}${kleur_1.default.white(' by ')}${kleur_1.default.blue(name)}`)); }; exports.printHeader = printHeader; const printNewVersionNotice = (npmVersion) => { console.log(kleur_1.default.italic(`\n${' '.repeat(6)}Version ${kleur_1.default.green(npmVersion)} available!`)); console.log(kleur_1.default.yellow(' npm up -g @hunterparks/betterpr')); }; exports.printNewVersionNotice = printNewVersionNotice; const printRepoHeader = (repoName = '') => console.log(`\n${kleur_1.default.bold(`${kleur_1.default.green('[Open]')} ${kleur_1.default.white(`PRs for ${kleur_1.default.italic(repoName)}`)}`)}`); exports.printRepoHeader = printRepoHeader; const printRepoLine = (order, rawPr) => { var _a, _b, _c, _d; let prepend = ''; switch (order) { case 10: { // Reviewer Unapproved prepend = exports.icons.redEx(); break; } case 20: { // Reviewer Approved prepend = exports.icons.greenCheck(); break; } case 30: { // Not Reviwer prepend = exports.icons.magentaQuestion(); break; } case 40: { // Author prepend = exports.icons.blueCircle(); break; } case 50: { // WIP prepend = ' '; break; } default: { prepend = '-'; } } if ((_a = rawPr.participants) === null || _a === void 0 ? void 0 : _a.some((participant) => participant.state === 'changes_requested')) { prepend = `${exports.icons.yellowTri()} ${prepend}`; } else { prepend = ` ${prepend}`; } const approvedCount = (_b = rawPr.participants) === null || _b === void 0 ? void 0 : _b.reduce((acc, participant) => acc + (participant.role === 'REVIEWER' && participant.approved ? 1 : 0), 0); const approvalsNeeded = 2; let approvalText = `[${approvedCount}/${approvalsNeeded}]`; if (approvedCount <= 0) { approvalText = kleur_1.default.red(approvalText); } else if (approvedCount >= approvalsNeeded) { approvalText = kleur_1.default.green(approvalText); } else { approvalText = kleur_1.default.yellow(approvalText); } return `${prepend} ${approvalText} ${(0, exports.makeLink)(rawPr.title || '', ((_d = (_c = rawPr.links) === null || _c === void 0 ? void 0 : _c.html) === null || _d === void 0 ? void 0 : _d.href) || '')}`; }; exports.printRepoLine = printRepoLine; const printTotalLine = (color, icon, count, needPadding, text) => console.log(color(`${icon} ${count < 10 && needPadding ? ` ${count}` : count} ${text}`)); exports.printTotalLine = printTotalLine; const sayGoodbye = () => console.log(kleur_1.default.white().italic('\nGoodbye!'), kleur_1.default.red('■'), kleur_1.default.yellow('■'), kleur_1.default.green('■'), kleur_1.default.cyan('■'), kleur_1.default.blue('■'), kleur_1.default.magenta('■'), kleur_1.default.white('■'), kleur_1.default.grey('■'), kleur_1.default.black('■')); exports.sayGoodbye = sayGoodbye;