UNPKG

auto-cr-cmd

Version:

Fast automated code review CLI powered by SWC-based static analysis

59 lines (58 loc) 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.readFile = void 0; exports.getAllFiles = getAllFiles; exports.checkPathExists = checkPathExists; var fs_1 = __importDefault(require("fs")); var path_1 = __importDefault(require("path")); var consola_1 = require("consola"); var i18n_1 = require("../i18n"); var readFile = function (path) { return fs_1.default.readFileSync(path, 'utf-8'); }; exports.readFile = readFile; /** * 递归获取目录下所有 TypeScript 和 JavaScript 文件 */ function getAllFiles(dirPath, arrayOfFiles, extensions, options) { if (arrayOfFiles === void 0) { arrayOfFiles = []; } if (extensions === void 0) { extensions = ['.ts', '.tsx', '.js', '.jsx']; } if (options === void 0) { options = {}; } if (!fs_1.default.existsSync(dirPath)) return arrayOfFiles; var _a = options.skipNodeModules, skipNodeModules = _a === void 0 ? true : _a; var files = fs_1.default.readdirSync(dirPath); files.forEach(function (file) { var fullPath = path_1.default.join(dirPath, file); var stats = fs_1.default.statSync(fullPath); if (options.shouldIgnore && options.shouldIgnore(fullPath, stats.isDirectory())) { return; } if (stats.isDirectory()) { if (skipNodeModules && file === 'node_modules') { return; } arrayOfFiles = getAllFiles(fullPath, arrayOfFiles, extensions, options); } else { if (extensions === null || extensions === void 0 ? void 0 : extensions.some(function (ext) { return fullPath.endsWith(ext); })) { arrayOfFiles.push(fullPath); } } }); return arrayOfFiles; } /** * 检查文件或目录是否存在 */ function checkPathExists(targetPath) { if (!fs_1.default.existsSync(targetPath)) { var t = (0, i18n_1.getTranslator)(); consola_1.consola.error(t.pathNotExist({ path: targetPath })); return false; } return true; }