ruch
Version:
Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.
75 lines • 3.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeFile = exports.createBackupFile = exports.fileExists = exports.readFile = exports.writeFileContent = exports.ensureDirectoryExists = exports.validateFileExists = exports.createFileSystem = void 0;
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const promises_1 = __importDefault(require("fs/promises"));
const fs_1 = __importDefault(require("fs"));
const createFileSystem = () => {
return {
writeFile: fs_extra_1.default.writeFile,
readFile: fs_extra_1.default.readFile,
readdir: fs_extra_1.default.readdir,
stat: fs_extra_1.default.stat,
remove: fs_extra_1.default.remove,
mkdir: fs_extra_1.default.mkdir,
async exists(filePath) {
try {
await promises_1.default.access(filePath);
return true;
}
catch {
return false;
}
}
};
};
exports.createFileSystem = createFileSystem;
const validateFileExists = async (fileSystem, filePath) => {
return await fileSystem.exists(filePath);
};
exports.validateFileExists = validateFileExists;
const ensureDirectoryExists = async (fileSystem, dirPath) => {
const exists = await fileSystem.exists(dirPath);
if (!exists) {
await fileSystem.mkdir(dirPath, { recursive: true });
}
};
exports.ensureDirectoryExists = ensureDirectoryExists;
const writeFileContent = async (fileSystem, filePath, content, encoding = 'utf8') => {
const dir = path_1.default.dirname(filePath);
await (0, exports.ensureDirectoryExists)(fileSystem, dir);
await fileSystem.writeFile(filePath, content, encoding);
};
exports.writeFileContent = writeFileContent;
const readFile = async (fileSystem, filePath, encoding = 'utf8') => {
return await fileSystem.readFile(filePath, encoding);
};
exports.readFile = readFile;
const fileExists = (filePath) => {
return fs_1.default.existsSync(filePath);
};
exports.fileExists = fileExists;
// Utility functions for common operations
const createBackupFile = async (fileSystem, originalPath) => {
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
const backupPath = `${originalPath}.backup-${timestamp}`;
const exists = await (0, exports.validateFileExists)(fileSystem, originalPath);
if (exists) {
const content = await (0, exports.readFile)(fileSystem, originalPath);
await (0, exports.writeFileContent)(fileSystem, backupPath, content);
}
return backupPath;
};
exports.createBackupFile = createBackupFile;
const removeFile = async (fileSystem, filePath) => {
const exists = await (0, exports.validateFileExists)(fileSystem, filePath);
if (exists) {
await fileSystem.remove(filePath);
}
};
exports.removeFile = removeFile;
//# sourceMappingURL=file-operations.js.map