create-hexa-framework-app
v2.1.9
Published
Create Hexa Framework project with customizable templates, databases, and transport layers. Includes powerful CLI like Laravel Artisan!
Maintainers
Readme
🚀 create-hexa-framework-app
The most productive way to build TypeScript APIs with hexagonal architecture
Quick Start • CLI Guide • Release Notes • Changelog
Scaffold Hexa Framework projects with powerful CLI tools similar to Laravel Artisan! Generate complete CRUD systems in seconds, manage databases, and boost your productivity by 600x. ⚡
✨ What's New in v2.1.1
🔥 Hexa CLI - Powerful Development Tools!
Generate complete CRUD systems in seconds:
# Create a new project
npx create-hexa-framework-app my-api
# Generate complete CRUD with 7 files + Prisma model
cd my-api
npm run hexa generate crud Product -- --fields "name:string,price:number,stock:number"
# Output:
# ✔ Entity generated
# ✔ Repository generated
# ✔ Service generated
# ✔ Controller generated
# ✔ Router generated
# ✔ Validation schemas generated
# ✔ Prisma model generated📦 Installation
Using npx (Recommended)
npx create-hexa-framework-app my-apiGlobal Installation
npm install -g create-hexa-framework-app
create-hexa-framework-app my-api🎯 Usage
Interactive Mode
npx create-hexa-framework-appAkan muncul prompt:
? Enter project name: my-blog-api
? Select template: (Use arrow keys)
❯ Full Auth - JWT + Refresh Token with Express
Basic Auth - Simple JWT Auth
Empty - Blank Hexa projectDirect Mode
npx create-hexa-framework-app my-blog-api --template full-auth --database postgresql --transports rest,graphqlWith CLI Commands
After creating your project:
cd my-blog-api
npm run hexa list # Show all commands
npm run hexa generate crud Post # Generate CRUD
npm run hexa db migrate # Run migrations
npm run hexa serve # Start dev server📂 Generated Project Structure
my-blog-api/
├── src/
│ ├── core/ # Domain Layer
│ │ ├── entities/ # Domain entities
│ │ ├── repositories/ # Repository interfaces
│ │ └── services/ # Business services
│ ├── adapters/ # Infrastructure Layer
│ │ └── postgres/
│ │ └── repositories/ # Prisma implementations
│ ├── transports/ # Presentation Layer
│ │ └── api/
│ │ ├── controllers/ # REST controllers
│ │ ├── routers/ # Express routers
│ │ │ └── v1/
│ │ └── validations/ # Zod schemas
│ ├── policies/ # Authorization
│ │ ├── authMiddleware.ts
│ │ └── permissionMiddleware.ts
│ ├── mappers/ # Data transformation
│ │ └── response/
│ └── configs/ # Configuration
│ ├── database.ts
│ └── env.ts
├── prisma/
│ └── schema.prisma # Database schema
├── .env.example # Environment template
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md⚙️ What's Included
Dependencies
- @hexa-framework/core - Base classes dan utilities
- express - Web framework
- @prisma/client - Database ORM
- zod - Schema validation
- jsonwebtoken - JWT authentication
- bcrypt - Password hashing
- helmet - Security headers
- cors - CORS middleware
- express-rate-limit - Rate limiting
- winston - Logging
- dotenv - Environment variables
Dev Dependencies
- TypeScript - Type safety
- ts-node-dev - Development server
- @types/ - Type definitions
- prisma - Database migrations
- eslint - Code linting
- prettier - Code formatting
Scripts
{
"dev": "ts-node-dev --respawn src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate dev",
"prisma:studio": "prisma studio"
}🚀 Next Steps
After creating your project:
1. Navigate to Project
cd my-blog-api2. Configure Environment
Copy and edit .env:
copy .env.example .envEdit .env:
NODE_ENV=development
PORT=3000
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
JWT_SECRET=your-super-secret-key-change-this
CORS_ORIGIN=http://localhost:30003. Setup Database
npx prisma generate
npx prisma migrate dev --name init4. Generate Your First Resource
Install CLI:
npm install -g @hexa-framework/cliGenerate resource:
hexa generate resource postThis creates:
src/core/entities/post.entity.tssrc/core/repositories/post.repository.tssrc/core/services/post.service.tssrc/adapters/postgres/repositories/post.repository.adapter.tssrc/transports/api/controllers/post.controller.tssrc/transports/api/routers/v1/post.router.tssrc/transports/api/validations/post.validation.tssrc/mappers/response/post.mapper.ts
5. Run Development Server
npm run devServer akan running di http://localhost:3000
6. Test API
# Health check
curl http://localhost:3000/health
# Your resources (jika sudah generate)
curl http://localhost:3000/api/v1/posts📚 Documentation
Dokumentasi lengkap tersedia di:
🤝 Contributing
Contributions are welcome! Please check our Contributing Guide.
📄 License
MIT © lutfian.rhdn
🔗 Links
Made with ❤️ by lutfian.rhdn
