xpresss-cli
v1.0.0
Published
A powerful CLI tool for generating Express.js API modules, controller, service, route and DTOs with standardized structure and automatic file management.
Readme
Express CLI Generator
A powerful CLI tool for generating Express.js API modules, controller, service, route and DTOs with standardized structure and automatic file management.
Features
- Generate complete API modules with controllers, services, routes, and DTOs
- Generate individual Data Transfer Objects (DTOs), Controller, Route, Service
- Automatic file conflict detection and replacement prompts
- Kebab-case naming convention
- Template-based code generation
- Interactive prompts with validation
Installation
npm install -g xpresss-cliUsage
Interactive Mode
xpresss-cli generateThis will prompt you to select what you want to generate and provide the necessary inputs.
Direct Commands
Generate a Module
# Interactive prompt for module name
xpresss-cli generate --type module
# Specify module name directly
xpresss-cli generate --type module --name userGenerate a Controller
# Interactive prompt for controller name
xpresss-cli generate --type controller
# Specify Controller name directly
xpresss-cli generate --type controller --name userGenerate a service
# Interactive prompt for service name
xpresss-cli generate --type service
# Specify service name directly
xpresss-cli generate --type service --name userGenerate a route
# Interactive prompt for route name
xpresss-cli generate --type route
# Specify route name directly
xpresss-cli generate --type route --name userGenerate a DTO
# Interactive prompt for DTO name
xpresss-cli generate --type dto
# Specify DTO name directly
xpresss-cli generate --type dto --name userGenerated Structure
Module Structure
When you generate a module named "user", the following files are created:
src/modules/user/
├── controllers/
│ └── user.controller.ts
├── services/
│ └── user.service.ts
├── routes/
│ └── user.route.ts
├── dtos/
│ └── user.dto.ts
└── index.tsCLI Options
| Option | Short | Description | Example |
| -------- | ----- | -------------------------------------------------------------- | --------------- |
| --type | -t | Specify generator type (module/controler, service, route, dto) | --type module |
| --name | -n | Specify the name directly | --name user |
Examples
Generate a complete user module
xpresss-cli generate --type module --name userCreates:
src/modules/user/controllers/user.controller.tssrc/modules/user/services/user.service.tssrc/modules/user/routes/user.route.tssrc/modules/user/dtos/user.dto.tssrc/modules/user/index.ts
Generate only a DTO
xpresss-cli generate --type dto --name productCreates:
src/modules/product/dtos/product.dto.ts
Interactive generation
xpresss-cli generate- Select what to generate (module or DTO)
- Enter the name
- Confirm file replacement if conflicts exist
Dependencies
- node-plop: Template-based file generator
- inquirer: Interactive command line prompts
- commander: Command-line interface framework
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
MIT License
