t-comm
Version:
专业、稳定、纯粹的工具库
235 lines (228 loc) • 11.1 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var _regeneratorRuntime = require('@babel/runtime/regenerator');
var tslib_es6 = require('../tslib.es6-0d92ef81.js');
var bite_formatBite = require('../bite/format-bite.js');
var canvas_compressImg = require('../canvas/compress-img.js');
var fs_fs = require('../fs/fs.js');
var git_git = require('../git/git.js');
var mp_pageTotal = require('../mp/page-total.js');
var nodejs_path = require('../nodejs/path.js');
var time_time = require('../time/time.js');
var wecomRobot_batchSend = require('../wecom-robot/batch-send.js');
require('../canvas/get-canvas.js');
require('../third-party/canvas.js');
require('../nodejs/crypto.js');
require('../nodejs/fs.js');
require('../nodejs/os.js');
require('../node/node-command.js');
require('@babel/runtime/helpers/typeof');
require('../nodejs/child_process.js');
require('../validate/validate.js');
require('../fs/fs-util.js');
require('../wecom-robot/base.js');
require('../wecom-robot/helper.js');
require('axios');
require('../wecom-robot/send-img.js');
require('../node-img/img.js');
require('../nodejs/request.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
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__default["default"]({}, 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(bite_formatBite.formatBite(previewMap.__APP__), "`"), "\u603B\u5305: `".concat(bite_formatBite.formatBite(previewMap.__FULL__), "`")].concat(_toConsumableArray__default["default"](keyList.map(function (key) {
return "".concat(key.replace(/^\/|\/$/g, ''), ": `").concat(bite_formatBite.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 tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
var commitInfo, version, time, descMap;
return _regeneratorRuntime__default["default"].wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
commitInfo = git_git.getGitCommitInfo(root, false, false, false);
version = '';
try {
version = fs_fs.readFileSync(nodejs_path.getPath().resolve(root, './package.json'), true).version;
} catch (err) {}
time = time_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 tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].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__default["default"].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 = mp_pageTotal.getComponentInfo(bundleResult);
pageInfo = mp_pageTotal.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总大小', bite_formatBite.formatBite(jsSizeTotal), true), getRobotMessageItem('Vendor大小', bite_formatBite.formatBite(vendorJsSize), true), getRobotMessageItem('样式总大小', bite_formatBite.formatBite(wxssSizeTotal), true), getRobotMessageItem('WXML总大小', bite_formatBite.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 tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
var descList, content, previewCodeBase64P, compressedImg;
return _regeneratorRuntime__default["default"].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 wecomRobot_batchSend.batchSendWxRobotMarkdown({
webhookUrl: webhookUrl,
chatId: 'ALL',
content: content
});
case 4:
previewCodeBase64P = fs_fs.readFileSync(previewCodeBase64Path);
if (previewCodeBase64P) {
_context3.next = 5;
break;
}
return _context3.abrupt("return");
case 5:
_context3.next = 6;
return canvas_compressImg.compressBase64Img(previewCodeBase64P, compressOptions);
case 6:
compressedImg = _context3.sent;
_context3.next = 7;
return wecomRobot_batchSend.batchSendWxRobotBase64Img({
img: compressedImg,
chatId: 'ALL',
webhookUrl: webhookUrl
});
case 7:
case "end":
return _context3.stop();
}
}, _callee3);
}));
}
exports.sendWxMpCIMessageAfterPlugin = sendWxMpCIMessageAfterPlugin;