t-comm
Version:
专业、稳定、纯粹的工具库
225 lines (222 loc) • 10.2 kB
JavaScript
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import _regeneratorRuntime from '@babel/runtime/regenerator';
import { _ as __awaiter } from '../tslib.es6-848120af.js';
import { formatBite } from '../bite/format-bite.mjs';
import { compressBase64Img } from '../canvas/compress-img.mjs';
import { readFileSync } from '../fs/fs.mjs';
import { getGitCommitInfo } from '../git/git.mjs';
import { getComponentInfo, getPageTotal } from '../mp/page-total.mjs';
import { getPath } from '../nodejs/path.mjs';
import { timeStampFormat } from '../time/time.mjs';
import { batchSendWxRobotBase64Img, batchSendWxRobotMarkdown } from '../wecom-robot/batch-send.mjs';
import '../canvas/get-canvas.mjs';
import '../third-party/canvas.mjs';
import '../nodejs/crypto.mjs';
import '../nodejs/fs.mjs';
import '../nodejs/os.mjs';
import '../node/node-command.mjs';
import '@babel/runtime/helpers/typeof';
import '../nodejs/child_process.mjs';
import '../validate/validate.mjs';
import '../fs/fs-util.mjs';
import '../wecom-robot/base.mjs';
import '../wecom-robot/helper.mjs';
import 'axios';
import '../wecom-robot/send-img.mjs';
import '../node-img/img.mjs';
import '../nodejs/request.mjs';
function parsePreviewResult(subPackageInfo) {
var maxSubPackageNum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
var subPackagesList = [];
try {
subPackagesList = JSON.parse(subPackageInfo);
} catch (err) {}
var previewMap = subPackagesList.reduce(function (acc, item) {
return Object.assign(Object.assign({}, acc), _defineProperty({}, item.name, item.size));
}, {});
var keyList = Object.keys(previewMap).filter(function (item) {
return !['__APP__', '__FULL__'].includes(item);
});
keyList.sort(function (a, b) {
return previewMap[b] - previewMap[a];
});
keyList = keyList.slice(0, maxSubPackageNum);
var list = ["\u4E3B\u5305: `".concat(formatBite(previewMap.__APP__), "`"), "\u603B\u5305: `".concat(formatBite(previewMap.__FULL__), "`")].concat(_toConsumableArray(keyList.map(function (key) {
return "".concat(key.replace(/^\/|\/$/g, ''), ": `").concat(formatBite(previewMap[key]), "`");
})));
return list.join(',');
}
var getRobotMessageItem = function getRobotMessageItem(key, value) {
var isLight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (isLight) {
return "".concat(key, "\uFF1A`").concat(value, "`");
}
return "".concat(key, "\uFF1A").concat(value);
};
function getDescMap(_ref) {
var robot = _ref.robot,
root = _ref.root,
env = _ref.env,
branch = _ref.branch;
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var commitInfo, version, time, descMap;
return _regeneratorRuntime.wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
commitInfo = getGitCommitInfo(root, false, false, false);
version = '';
try {
version = readFileSync(getPath().resolve(root, './package.json'), true).version;
} catch (err) {}
time = timeStampFormat(Date.now(), 'yyyy-MM-dd hh:mm:ss');
descMap = {
branch: {
title: '分支',
content: "".concat(branch || commitInfo.branch)
},
env: {
title: '环境',
content: "".concat(env)
},
robot: {
title: '机器人',
content: "".concat(robot)
},
version: {
title: '版本',
content: "".concat(version) || ''
},
lastCommit: {
title: '最后提交',
content: "".concat(commitInfo.author, " - ").concat(commitInfo.message, " - ").concat(commitInfo.hash || '')
},
time: {
title: '时间',
content: "".concat(time)
}
};
console.log('[CI] descMap: ', descMap);
return _context.abrupt("return", descMap);
case 1:
case "end":
return _context.stop();
}
}, _callee);
}));
}
function getDescList(_ref2) {
var bundleResult = _ref2.bundleResult,
subPackageInfo = _ref2.subPackageInfo,
robot = _ref2.robot,
root = _ref2.root,
env = _ref2.env,
branch = _ref2.branch;
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
var descMap, branchInfo, envInfo, robotInfo, versionInfo, lastCommitInfo, componentInfo, pageInfo, _componentInfo$compon, componentTotal, _componentInfo$wxmlSi, wxmlSizeTotal, _componentInfo$wxssSi, wxssSizeTotal, _componentInfo$jsSize, jsSizeTotal, _componentInfo$vendor, vendorJsSize, _pageInfo$pageTotal, pageTotal, _pageInfo$subPackageT, subPackageTotal;
return _regeneratorRuntime.wrap(function (_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 1;
return getDescMap({
robot: robot,
root: root,
env: env,
branch: branch
});
case 1:
descMap = _context2.sent;
branchInfo = descMap.branch, envInfo = descMap.env, robotInfo = descMap.robot, versionInfo = descMap.version, lastCommitInfo = descMap.lastCommit;
componentInfo = getComponentInfo(bundleResult);
pageInfo = getPageTotal(bundleResult);
_componentInfo$compon = componentInfo.componentTotal, componentTotal = _componentInfo$compon === void 0 ? 0 : _componentInfo$compon, _componentInfo$wxmlSi = componentInfo.wxmlSizeTotal, wxmlSizeTotal = _componentInfo$wxmlSi === void 0 ? 0 : _componentInfo$wxmlSi, _componentInfo$wxssSi = componentInfo.wxssSizeTotal, wxssSizeTotal = _componentInfo$wxssSi === void 0 ? 0 : _componentInfo$wxssSi, _componentInfo$jsSize = componentInfo.jsSizeTotal, jsSizeTotal = _componentInfo$jsSize === void 0 ? 0 : _componentInfo$jsSize, _componentInfo$vendor = componentInfo.vendorJsSize, vendorJsSize = _componentInfo$vendor === void 0 ? 0 : _componentInfo$vendor;
_pageInfo$pageTotal = pageInfo.pageTotal, pageTotal = _pageInfo$pageTotal === void 0 ? 0 : _pageInfo$pageTotal, _pageInfo$subPackageT = pageInfo.subPackageTotal, subPackageTotal = _pageInfo$subPackageT === void 0 ? 0 : _pageInfo$subPackageT;
return _context2.abrupt("return", [[getRobotMessageItem(branchInfo.title, branchInfo.content, true), getRobotMessageItem(envInfo.title, envInfo.content, true), getRobotMessageItem(robotInfo.title, robotInfo.content, true), getRobotMessageItem(versionInfo.title, versionInfo.content, true), "[\u6784\u5EFA\u5730\u5740](".concat(process.env.BK_CI_BUILD_URL || '', ")"), getRobotMessageItem(lastCommitInfo.title, lastCommitInfo.content, false)].join(','), "- ".concat([getRobotMessageItem('页面数', pageTotal, true), getRobotMessageItem('组件数', componentTotal, true), getRobotMessageItem('分包数', subPackageTotal, true)].join(',')), "- ".concat([getRobotMessageItem('JS总大小', formatBite(jsSizeTotal), true), getRobotMessageItem('Vendor大小', formatBite(vendorJsSize), true), getRobotMessageItem('样式总大小', formatBite(wxssSizeTotal), true), getRobotMessageItem('WXML总大小', formatBite(wxmlSizeTotal), true)].join(',')), "- ".concat(parsePreviewResult(subPackageInfo, 5))]);
case 2:
case "end":
return _context2.stop();
}
}, _callee2);
}));
}
function sendWxMpCIMessageAfterPlugin(_ref3) {
var appName = _ref3.appName,
webhookUrl = _ref3.webhookUrl,
previewCodeBase64Path = _ref3.previewCodeBase64Path,
bundleResult = _ref3.bundleResult,
subPackageInfo = _ref3.subPackageInfo,
robot = _ref3.robot,
root = _ref3.root,
env = _ref3.env,
branch = _ref3.branch,
_ref3$compressOptions = _ref3.compressOptions,
compressOptions = _ref3$compressOptions === void 0 ? {
maxWidth: 280,
quality: 0.8
} : _ref3$compressOptions,
_ref3$dryRun = _ref3.dryRun,
dryRun = _ref3$dryRun === void 0 ? false : _ref3$dryRun;
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
var descList, content, previewCodeBase64P, compressedImg;
return _regeneratorRuntime.wrap(function (_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
if (webhookUrl) {
_context3.next = 1;
break;
}
return _context3.abrupt("return");
case 1:
_context3.next = 2;
return getDescList({
bundleResult: bundleResult,
subPackageInfo: subPackageInfo,
robot: robot,
root: root,
env: env,
branch: branch
});
case 2:
descList = _context3.sent;
content = "> \u2705\u3010".concat(appName, " WX MP\u3011").concat(descList.join('\n'));
if (!dryRun) {
_context3.next = 3;
break;
}
return _context3.abrupt("return", {
content: content,
descList: descList
});
case 3:
_context3.next = 4;
return batchSendWxRobotMarkdown({
webhookUrl: webhookUrl,
chatId: 'ALL',
content: content
});
case 4:
previewCodeBase64P = readFileSync(previewCodeBase64Path);
if (previewCodeBase64P) {
_context3.next = 5;
break;
}
return _context3.abrupt("return");
case 5:
_context3.next = 6;
return compressBase64Img(previewCodeBase64P, compressOptions);
case 6:
compressedImg = _context3.sent;
_context3.next = 7;
return batchSendWxRobotBase64Img({
img: compressedImg,
chatId: 'ALL',
webhookUrl: webhookUrl
});
case 7:
case "end":
return _context3.stop();
}
}, _callee3);
}));
}
export { sendWxMpCIMessageAfterPlugin };