UNPKG

@veecode-platform/safira-cli

Version:

Generate a microservice project from your spec.

55 lines (54 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateSyncFiles = void 0; const tslib_1 = require("tslib"); const file_system_utils_1 = require("../utils/file-system-utils"); const inquirer_1 = tslib_1.__importDefault(require("inquirer")); class UpdateSyncFiles { constructor() { this._override = false; this._skip = false; } async syncFiles(originBasePath, destinyBasePath, force, compare) { const conflictResult = this._checkConflicts(originBasePath, destinyBasePath); await this.formatCode(conflictResult .flatMap(file => [file.originalFinal, file.destinyFile]) .filter(file => file_system_utils_1.FileSystemUtils.exists(file))); const choices = ["yes", "no", "yes all", "skip all"]; for (const file of conflictResult) { if (!this._skip && (!file_system_utils_1.FileSystemUtils.exists(file.destinyFile) || force || this._override)) { file_system_utils_1.FileSystemUtils.copyFileSync(file.originalFinal, file.destinyFile); continue; } if (!this._skip && !compare(file.originalFinal, file.destinyFile)) { const response = await inquirer_1.default.prompt([{ name: "override", message: `override ${file.destinyFile}?`, type: "list", choices: choices, }]); if (response.override === choices[2]) this._override = true; if (response.override === choices[3]) this._skip = true; if ([choices[0], choices[2]].includes(response.override)) { file_system_utils_1.FileSystemUtils.copyFileSync(file.originalFinal, file.destinyFile); continue; } } } } _checkConflicts(originBasePath, destinyBasePath) { console.log("Checking conflicts..."); return file_system_utils_1.FileSystemUtils.listFilesRecursive(originBasePath, ["java"]).map(file => { const packagePath = file.replace(originBasePath, ""); const destinyFile = file_system_utils_1.FileSystemUtils.buildPath(destinyBasePath, packagePath); return { originalFinal: file, destinyFile: destinyFile, conflict: file_system_utils_1.FileSystemUtils.exists(destinyFile), }; }); } } exports.UpdateSyncFiles = UpdateSyncFiles;