UNPKG

@diagramers/cli

Version:

Diagramers CLI - Command-line tools for managing Diagramers projects

80 lines 3.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiCommand = apiCommand; const api_generator_1 = require("../services/api-generator"); const table_generator_1 = require("../services/table-generator"); const relation_generator_1 = require("../services/relation-generator"); const template_processor_1 = require("../services/template-processor"); const chalk_1 = __importDefault(require("chalk")); function apiCommand(program) { const api = program .command('api') .description('API-specific commands for diagramers projects'); // Generate module command api .command('generate:module <name>') .description('Generate a new module with entity, schema, service, controller, and routes') .action(async (name) => { try { console.log(chalk_1.default.blue(`🚀 Generating module: ${name}`)); await (0, api_generator_1.generateModule)(name); console.log(chalk_1.default.green(`✅ Module '${name}' generated successfully!`)); } catch (error) { console.error(chalk_1.default.red(`❌ Error generating module: ${error.message}`)); process.exit(1); } }); // Process template command api .command('process:template <name>') .description('Process template files for a new project') .action(async (name) => { try { console.log(chalk_1.default.blue(`🔧 Processing template for project: ${name}`)); await (0, template_processor_1.processTemplate)(name); console.log(chalk_1.default.green(`✅ Template processing completed for '${name}'!`)); } catch (error) { console.error(chalk_1.default.red(`❌ Error processing template: ${error.message}`)); process.exit(1); } }); // Generate table command api .command('generate:table <name>') .description('Generate a new database table with entity and schema only') .action(async (name) => { try { console.log(chalk_1.default.blue(`🚀 Generating table: ${name}`)); await (0, table_generator_1.generateTable)(name); console.log(chalk_1.default.green(`✅ Table '${name}' generated successfully!`)); } catch (error) { console.error(chalk_1.default.red(`❌ Error generating table: ${error.message}`)); process.exit(1); } }); // Generate relation command api .command('generate:relation <table1> <table2>') .description('Generate a relationship between two existing tables') .option('-t, --type <type>', 'Relationship type: one-to-one, one-to-many, many-to-many', 'one-to-one') .action(async (table1, table2, options) => { try { const relationType = options?.type || 'one-to-one'; console.log(chalk_1.default.blue(`🔗 Creating ${relationType} relationship between ${table1} and ${table2}...`)); await (0, relation_generator_1.generateRelation)(table1, table2, relationType); console.log(chalk_1.default.green(`✅ Relationship created successfully!`)); } catch (error) { console.error(chalk_1.default.red(`❌ Error creating relationship: ${error.message}`)); process.exit(1); } }); return api; } //# sourceMappingURL=api.js.map