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.
58 lines • 2.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isVisualizationAppBuilt = exports.buildVisualizationApp = void 0;
const child_process_1 = require("child_process");
const util_1 = require("util");
const path_1 = __importDefault(require("path"));
const logger_1 = require("../utils/logger");
const file_operations_1 = require("../utils/file-operations");
const execAsync = (0, util_1.promisify)(child_process_1.exec);
/**
* Build the React visualization app
*/
const buildVisualizationApp = async () => {
const fileSystem = (0, file_operations_1.createFileSystem)();
const appPath = path_1.default.join(__dirname, 'app');
const packageJsonPath = path_1.default.join(appPath, 'package.json');
try {
// Check if the app directory exists
const appExists = await (0, file_operations_1.validateFileExists)(fileSystem, appPath);
if (!appExists) {
logger_1.logger.error('Visualization app directory not found');
return;
}
// Check if package.json exists
const packageJsonExists = await (0, file_operations_1.validateFileExists)(fileSystem, packageJsonPath);
if (!packageJsonExists) {
logger_1.logger.error('package.json not found in visualization app');
return;
}
logger_1.logger.info('📦 Installing visualization app dependencies...');
// Install dependencies
await execAsync('npm install', { cwd: appPath });
logger_1.logger.info('🔨 Building visualization app...');
// Build the app
await execAsync('npm run build', { cwd: appPath });
logger_1.logger.success('✅ Visualization app built successfully');
}
catch (error) {
logger_1.logger.error('❌ Failed to build visualization app:');
logger_1.logger.error(error instanceof Error ? error.message : String(error));
throw error;
}
};
exports.buildVisualizationApp = buildVisualizationApp;
/**
* Check if the visualization app is built
*/
const isVisualizationAppBuilt = async () => {
const fileSystem = (0, file_operations_1.createFileSystem)();
const buildPath = path_1.default.join(__dirname, 'app', 'build');
const indexPath = path_1.default.join(buildPath, 'index.html');
return await (0, file_operations_1.validateFileExists)(fileSystem, indexPath);
};
exports.isVisualizationAppBuilt = isVisualizationAppBuilt;
//# sourceMappingURL=build-app.js.map