UNPKG

t-comm

Version:

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

85 lines (78 loc) 3.69 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray'); var _regeneratorRuntime = require('@babel/runtime/regenerator'); var tslib_es6 = require('../tslib.es6-0d92ef81.js'); var auditor_buildAuditContent = require('./build-audit-content.js'); require('../rtx/mention.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray); var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime); 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 tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() { var resultInfo, title, contentLines, creator, auditDesc, webhookUrl, sendMarkdown, isPass, realReviewer, symbol, content, _t; return _regeneratorRuntime__default["default"].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 = auditor_buildAuditContent.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__default["default"](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]]); })); } exports.checkAuditResult = checkAuditResult;