UNPKG

t-comm

Version:

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

54 lines (49 loc) 1.49 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var fs_fs = require('../fs/fs.js'); require('fs'); var DEFAULT_EXTRACT_REGEXP = /\$emit\('([\w]+)'/g; function getEventList(filePath, extractRegexp) { var data = fs_fs.readFileSync(filePath); var eventList = []; var match = extractRegexp.exec(data); while (match) { eventList.push({ name: match[1] }); match = extractRegexp.exec(data); } return eventList; } function genTable(list) { var table = ['| 事件名 | 说明 | 参数 |', '| ------------------ | ---------------- | --------- |']; list.forEach(function (item) { var name = item.name; table.push("| ".concat(name, " | |- |")); }); return table.join('\n'); } /** * 提取 Vue 组件的 event * @param {obj} params 参数 * @param {string} params.filePath 源文件地址 * @param {string} [params.targetFilePath] 输出文件地址 * @param {Regexp} [params.extractRegexp] 提取正则 * * ```ts * extractEvent({ * filePath: 'xxx.vue', * }) * ``` */ function extractEvent(_a) { var filePath = _a.filePath, _b = _a.targetFilePath, targetFilePath = _b === void 0 ? './log/extract-event.md' : _b, _c = _a.extractRegexp, extractRegexp = _c === void 0 ? DEFAULT_EXTRACT_REGEXP : _c; var eventList = getEventList(filePath, extractRegexp); var table = genTable(eventList); fs_fs.writeFileSync(targetFilePath, table); } exports.extractEvent = extractEvent;