@diagramers/cli
Version:
Diagramers CLI - Command-line tools for managing Diagramers projects
80 lines • 3.59 kB
JavaScript
;
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