auto-cr-cmd
Version:
Fast automated code review CLI powered by SWC-based static analysis
59 lines (58 loc) • 2.18 kB
JavaScript
;
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;
}