UNPKG

@antmjs/rapper

Version:

rapper, use http api as a function

148 lines (147 loc) 5.54 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.findRapperVersion = exports.findChangeFiles = exports.findDeleteFiles = exports.getFiles = void 0; var fs = __importStar(require("fs")); var path = __importStar(require("path")); var path_1 = require("path"); var chalk_1 = __importDefault(require("chalk")); var utils_1 = require("../utils"); function getFiles(parentPath) { var fileList = []; if (parentPath.indexOf('/.') > -1 || parentPath.indexOf('node_modules') > -1) { return fileList; } var files = []; try { files = fs.readdirSync(parentPath); } catch (err) { throw new Error('文件夹不存在,请检查config配置'); } files.forEach(function (item) { item = path.join(parentPath, item); if (item.indexOf('src') < 0) { return; } var stat = fs.statSync(item); try { if (stat.isDirectory()) { fileList = fileList.concat(getFiles(item)); } else if (stat.isFile()) { fileList.push(item); } } catch (error) { console.log(chalk_1.default.red("rapper: Rap \u63A5\u53E3\u5F15\u7528\u626B\u63CF\u5931\u8D25, ".concat(error))); } }); return fileList; } exports.getFiles = getFiles; function isFileChange(contentArr) { var matchMD5 = contentArr[0].match(/\/\*\smd5:\s(\S*)\s\*\//) || []; var oldMD5 = matchMD5[1]; if (!oldMD5) { return false; } return oldMD5 !== (0, utils_1.getMd5)(contentArr.slice(1).join('\n')); } function scanAllfiles(interfaces, fileList) { var strReg = /[\'\"]+(GET|POST|PUT|DELETE|OPTIONS|PATCH|HEAD)\/([^\'\"]*)[^(REQUEST)(SUCCESS)(FAILURE)]{1}[\'\"]+/g; var result = []; fileList.forEach(function (filePath) { var extName = path.extname(filePath); if (!['.ts', '.js', '.vue', '.es'].includes(extName)) { return; } var content = fs.readFileSync(filePath, 'utf-8') || ''; content.split('\n').forEach(function (rowText, i) { var regResult = rowText.match(strReg); if (regResult && regResult.length > 0) { regResult.forEach(function (item) { item = item.replace(/\'|\"/gi, ''); var isExist = !!interfaces.find(function (_a) { var modelName = _a.modelName; return modelName === item; }); if (!isExist) { result.push({ key: item, filePath: (0, path_1.resolve)(process.cwd(), filePath), start: rowText.indexOf(item), line: i + 1, }); } }); } }); return false; }); return result; } function findDeleteFiles(interfaces, excludePaths) { var fileList = getFiles('./'); fileList = fileList.filter(function (file) { file = (0, path_1.resolve)(process.cwd(), file); return !excludePaths.find(function (exclude) { return file.indexOf((0, path_1.resolve)(process.cwd(), exclude)) > -1; }); }); return scanAllfiles(interfaces, fileList); } exports.findDeleteFiles = findDeleteFiles; function findChangeFiles(rapperPath) { var fileList = getFiles(rapperPath); var changeList = []; fileList.forEach(function (filePath) { var content = fs.readFileSync(filePath, 'utf-8') || ''; if (isFileChange(content.split(/\r|\n|\r\n/))) { changeList.push((0, path_1.resolve)(process.cwd(), filePath)); } }); return changeList; } exports.findChangeFiles = findChangeFiles; function findRapperVersion(rapperPath) { var version = ''; try { var content = fs.readFileSync("".concat(rapperPath, "/index.ts"), 'utf-8') || ''; var contentArr = content.split(/\r|\n|\r\n/); if (contentArr.length) { var matchMD5 = contentArr .slice(0, 6) .join('\n') .match(/\/\*\sRapper版本:\s(\S*)\s\*\//) || []; version = matchMD5[1]; } } catch (err) { } return version; } exports.findRapperVersion = findRapperVersion;