UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

77 lines (74 loc) 3.21 kB
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray'; import _regeneratorRuntime from '@babel/runtime/regenerator'; import { _ as __awaiter } from '../tslib.es6-848120af.js'; import { getReviewerFromSuggest } from './build-audit-content.mjs'; import '../rtx/mention.mjs'; import 'axios'; var STATUS_MAP = { ABORT: 'ABORT', PROCESS: 'PROCESS' }; /** * 统一审核结果检查 * * 检查审核结果,通过则 resolve,驳回则发送企微通知并 reject。 * 适用于 H5 发布、组件库发布等所有需要审核的流水线。 * * @example H5 发布 * ```ts * const { batchSendWxRobotMarkdown, checkAuditResult } = require('t-comm'); * * await checkAuditResult({ * resultInfo, * title: '【H5发布】', * contentLines: [`项目: \`my-project\``, `子工程:\`my-sub\``], * creator: 'novlan1', * auditDesc: '需求发布', * webhookUrl: '0482249e-bf24-4168-b3e2-f72d012840c2', * sendMarkdown: batchSendWxRobotMarkdown, * }); * ``` */ function checkAuditResult(options) { return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var resultInfo, title, contentLines, creator, auditDesc, webhookUrl, sendMarkdown, isPass, realReviewer, symbol, content, _t; return _regeneratorRuntime.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: resultInfo = options.resultInfo, title = options.title, contentLines = options.contentLines, creator = options.creator, auditDesc = options.auditDesc, webhookUrl = options.webhookUrl, sendMarkdown = options.sendMarkdown; console.log('[checkAuditResult][resultInfo]', resultInfo); isPass = resultInfo.status === STATUS_MAP.PROCESS; realReviewer = getReviewerFromSuggest(resultInfo.suggest) || resultInfo.reviewer; symbol = isPass ? '✅' : '❌'; if (!isPass) { _context.next = 1; break; } console.log('[checkAuditResult][PASS]'); return _context.abrupt("return"); case 1: content = ["".concat(symbol).concat(title, "\u5BA1\u6838\u7ED3\u679C\uFF1A`").concat(isPass ? '通过' : '驳回', "`"), "\u5BA1\u6838\u610F\u89C1\uFF1A`".concat(resultInfo.suggest || '无', "`"), "\u5BA1\u6838\u4EBA\uFF1A<@".concat(realReviewer, ">")].concat(_toConsumableArray(contentLines), ["\u53D1\u5E03\u539F\u56E0\uFF1A`".concat(auditDesc, "`"), "\u53D1\u8D77\u4EBA\uFF1A<@".concat(creator, ">"), "[\u8BE6\u60C5](".concat(resultInfo.bkBuildUrl || '', ")")]).join(','); _context.prev = 2; _context.next = 3; return sendMarkdown({ content: content, chatId: ['ALL'], webhookUrl: webhookUrl }); case 3: _context.next = 5; break; case 4: _context.prev = 4; _t = _context["catch"](2); console.error('[checkAuditResult][sendMarkdown error]', _t); case 5: throw new Error('Audit Failed'); case 6: case "end": return _context.stop(); } }, _callee, null, [[2, 4]]); })); } export { checkAuditResult };