UNPKG

t-comm

Version:

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

142 lines (137 loc) 5.57 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var wecomRobot_optimizeRobotContent = require('../wecom-robot/optimize-robot-content.js'); var versionTip_config = require('./config.js'); var string_replaceAll = require('../string/replace-all.js'); /* eslint-disable @typescript-eslint/no-require-imports */ function optimizeContent(content) { if (content === void 0) { content = ''; } return wecomRobot_optimizeRobotContent.optimizeRobotContent({ content: content, maxLen: versionTip_config.MAX_CONTENT_LENGTH }); } function parseChangeLog(_a) { var changelogStr = _a.changelogStr, targetVersion = _a.targetVersion; // 非大版本(1.0.0,2.0.0等),比如 1.1.1 // 不是第一个版本 var currentVersion = changelogStr.match(new RegExp("(?<=### \\[".concat(targetVersion, "\\].*\n).*?(?=\n##+ \\[?\\d+.\\d+.\\d+)"), 's')); // 大版本 // 不是第一个版本 if (!(currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion[0])) { currentVersion = changelogStr.match(new RegExp("(?<=## \\[".concat(targetVersion, "\\].*\n).*?(?=\n##+ \\[?\\d+.\\d+.\\d+)"), 's')); } // changeLog 的另一种形式,lerna 生成的 if (!(currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion[0])) { changelogStr = changelogStr.replace(/<\/?small>/g, ''); currentVersion = changelogStr.match(new RegExp("(?<=## ".concat(targetVersion, ".*\n).*?(?=\n##+ ?\\d+.\\d+.\\d+)"), 's')); } // 非大版本 // 第一个版本 if (!(currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion[0])) { currentVersion = changelogStr.match(new RegExp("(?<=### ".concat(targetVersion, ".*\n).*"), 's')); } // 大版本 // 第一个版本 if (!(currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion[0])) { currentVersion = changelogStr.match(new RegExp("(?<=## ".concat(targetVersion, ".*\n).*"), 's')); } if (!(currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion[0])) { console.log("[GEN VERSION TIP] ERROR: NOT FOUND CHANGELOG INFO OF ".concat(targetVersion, " ")); return ''; } var changelog = currentVersion[0].replace(/\n\*(\s.*)/g, function (a, b) { return "\n-".concat(b); }); return changelog; } function getChangeLog(_a) { var targetVersion = _a.targetVersion, changeLogFilePath = _a.changeLogFilePath; var fs = require('fs'); if (!fs.existsSync(changeLogFilePath)) { console.log("[GEN VERSION TIP] ERROR: NOT FOUND ".concat(changeLogFilePath, ". PLEASE GENERATE CHANGELOG. ")); return ''; } var changelogStr = fs.readFileSync(changeLogFilePath, 'utf8'); return parseChangeLog({ changelogStr: changelogStr, targetVersion: targetVersion }); } function generatePublishInfo(_a) { var appName = _a.appName, targetVersion = _a.version, homepage = _a.homepage, repoLink = _a.repoLink, issueLink = _a.issueLink, changeLogFilePath = _a.readmeFilePath, _b = _a.showNpmLink, showNpmLink = _b === void 0 ? false : _b; string_replaceAll.replaceAllPolyfill(); var versionStr = "- \u7248\u672C\uFF1A<font color=\"comment\">".concat(targetVersion, "</font>\n"); var npmStr = showNpmLink ? "- npm: [".concat(appName, "](https://npmjs.com/package/").concat(appName, ")\n") : ''; var issueStr = issueLink ? "- issue: [".concat(issueLink, "](").concat(issueLink, ")\n") : ''; var pRepoLink = repoLink.replace(/^git\+/, '').replace(/\.git$/, ''); var repoStr = repoLink ? "- Git: [".concat(pRepoLink, "](").concat(pRepoLink, ")\n") : ''; var homepageStr = homepage ? "- \u6587\u6863\uFF1A[".concat(homepage, "](").concat(homepage, ")\n") : ''; var template = "### ".concat(appName, " \u66F4\u65B0\n\n\n\n").concat(versionStr).concat(npmStr).concat(repoStr).concat(issueStr).concat(homepageStr, "\n\n"); var changelog = getChangeLog({ targetVersion: targetVersion, changeLogFilePath: changeLogFilePath }); // @ts-ignore var content = template.concat(changelog).replaceAll('###', '\n\n###'); return optimizeContent(content); } /** * 生成版本信息,可以用来发送到群聊中 * @param {object} config 配置信息 * @param {string} config.readmeFilePath changelog文件地址 * @param {object} config.appInfo package.json信息 * @returns {string} 版本信息 * @example * * const appInfo = require(`${rootPath}/package.json`); * const readmeFilePath = `${rootPath}/CHANGELOG.md`; * * const content = genVersionTip({ * readmeFilePath, * appInfo, * }); */ function genVersionTip(_a) { var readmeFilePath = _a.readmeFilePath, appInfo = _a.appInfo, _b = _a.showNpmLink, showNpmLink = _b === void 0 ? false : _b; var appName = appInfo.name, version = appInfo.version, _c = appInfo.homepage, homepage = _c === void 0 ? '' : _c, bugs = appInfo.bugs, repository = appInfo.repository; console.log('[GEN VERSION TIP] APP INFO VERSION:', version); var issueLink = ''; var repoLink = ''; if (bugs === null || bugs === void 0 ? void 0 : bugs.url) { issueLink = bugs.url; } if (repository === null || repository === void 0 ? void 0 : repository.url) { repoLink = repository.url; } return generatePublishInfo({ showNpmLink: showNpmLink, appName: appName, version: version, homepage: homepage, repoLink: repoLink, issueLink: issueLink, readmeFilePath: readmeFilePath }); } exports.genVersionTip = genVersionTip; exports.parseChangeLog = parseChangeLog;