nestjs-ddd-cli 2.0.1 โ 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +351 -61
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# NestJS DDD CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
๐๏ธ **An opinionated CLI for pragmatic Domain-Driven Design with NestJS**
|
|
4
|
+
|
|
5
|
+
Stop writing boilerplate. Start building business logic.
|
|
6
|
+
|
|
7
|
+
Generate production-ready NestJS code following proven DDD/CQRS patterns with consistent structure and immutable architecture principles.
|
|
4
8
|
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
@@ -76,94 +80,380 @@ ddd generate all User -m user-management
|
|
|
76
80
|
| **Complete CRUD** | `ddd scaffold <name> -m <module>` | All files for an entity |
|
|
77
81
|
| **All Entity Files** | `ddd generate all <name> -m <module>` | Entity + related files |
|
|
78
82
|
|
|
79
|
-
##
|
|
83
|
+
## Quick Start
|
|
84
|
+
|
|
85
|
+
### ๐ **Generate Your First Feature**
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 1. Create complete scaffolding for a User management feature
|
|
89
|
+
ddd scaffold User -m user-management
|
|
80
90
|
|
|
91
|
+
# 2. Add business logic to the generated files
|
|
92
|
+
# 3. Update index.ts exports
|
|
93
|
+
# 4. Run migrations
|
|
94
|
+
# 5. Import module in app.module.ts
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**What you get in seconds:**
|
|
98
|
+
```
|
|
99
|
+
๐ modules/user-management/
|
|
100
|
+
โโโ ๐ user-management.module.ts โ
NestJS module configured
|
|
101
|
+
โโโ ๐ application/
|
|
102
|
+
โ โโโ ๐ controllers/
|
|
103
|
+
โ โ โโโ ๐ user.controller.ts โ
REST endpoints (GET, POST, PUT, DELETE)
|
|
104
|
+
โ โโโ ๐ domain/
|
|
105
|
+
โ โ โโโ ๐ entities/
|
|
106
|
+
โ โ โ โโโ ๐ user.entity.ts โ
Domain entity with interfaces
|
|
107
|
+
โ โ โโโ ๐ usecases/
|
|
108
|
+
โ โ โโโ ๐ create-user.usecase.ts โ
Business logic for creation
|
|
109
|
+
โ โ โโโ ๐ update-user.usecase.ts โ
Business logic for updates
|
|
110
|
+
โ โ โโโ ๐ delete-user.usecase.ts โ
Business logic for deletion
|
|
111
|
+
โ โโโ ๐ dto/
|
|
112
|
+
โ โโโ ๐ requests/
|
|
113
|
+
โ โ โโโ ๐ create-user.dto.ts โ
Request validation schemas
|
|
114
|
+
โ โ โโโ ๐ update-user.dto.ts โ
Update validation schemas
|
|
115
|
+
โ โโโ ๐ responses/
|
|
116
|
+
โ โโโ ๐ user.response.ts โ
Response data contracts
|
|
117
|
+
โโโ ๐ infrastructure/
|
|
118
|
+
โโโ ๐ repositories/
|
|
119
|
+
โ โโโ ๐ user.repository.ts โ
CRUD operations + custom queries
|
|
120
|
+
โโโ ๐ orm-entities/
|
|
121
|
+
โ โโโ ๐ user.orm-entity.ts โ
Database schema (TypeORM)
|
|
122
|
+
โโโ ๐ mappers/
|
|
123
|
+
โโโ ๐ user.mapper.ts โ
Domain โ Database mapping
|
|
81
124
|
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
โ โ โโโ entities/ # Domain entities
|
|
89
|
-
โ โ โโโ events/ # Domain events
|
|
90
|
-
โ โ โโโ services/ # Domain services
|
|
91
|
-
โ โ โโโ usecases/ # Use cases/command handlers
|
|
92
|
-
โ โโโ dto/
|
|
93
|
-
โ โ โโโ requests/ # Request DTOs
|
|
94
|
-
โ โ โโโ responses/ # Response DTOs
|
|
95
|
-
โ โโโ queries/ # CQRS query handlers
|
|
96
|
-
โโโ infrastructure/
|
|
97
|
-
โ โโโ mappers/ # Domain โ ORM mappers
|
|
98
|
-
โ โโโ orm-entities/ # Database entities
|
|
99
|
-
โ โโโ repositories/ # Repository implementations
|
|
100
|
-
โโโ [module-name].module.ts # NestJS module
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Examples
|
|
104
|
-
|
|
105
|
-
### Create a new feature from scratch
|
|
125
|
+
|
|
126
|
+
> **๐ From zero to production-ready in under 30 seconds**
|
|
127
|
+
|
|
128
|
+
## Real-World Examples
|
|
129
|
+
|
|
130
|
+
### ๐ข **E-commerce Platform**
|
|
106
131
|
|
|
107
132
|
```bash
|
|
108
|
-
#
|
|
109
|
-
ddd scaffold
|
|
133
|
+
# Generate order management
|
|
134
|
+
ddd scaffold Order -m orders
|
|
110
135
|
|
|
111
|
-
#
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
136
|
+
# Add payment processing
|
|
137
|
+
ddd generate service PaymentProcessor -m orders
|
|
138
|
+
ddd generate event OrderPaid -m orders
|
|
139
|
+
|
|
140
|
+
# Add inventory checking
|
|
141
|
+
ddd generate query CheckStock -m inventory
|
|
142
|
+
ddd generate service StockValidator -m inventory
|
|
115
143
|
```
|
|
116
144
|
|
|
117
|
-
|
|
145
|
+
**Result:** Complete order system with payment processing and inventory management
|
|
146
|
+
```
|
|
147
|
+
๐ modules/orders/
|
|
148
|
+
โโโ ๐ orders.module.ts
|
|
149
|
+
โโโ ๐ application/domain/services/
|
|
150
|
+
โ โโโ ๐ payment-processor.service.ts ๐ Payment business logic
|
|
151
|
+
โโโ ๐ application/domain/events/
|
|
152
|
+
โ โโโ ๐ order-paid.event.ts ๐ Order payment event
|
|
153
|
+
โโโ ... (all CRUD operations)
|
|
154
|
+
|
|
155
|
+
๐ modules/inventory/
|
|
156
|
+
โโโ ๐ application/queries/
|
|
157
|
+
โ โโโ ๐ check-stock.handler.ts ๐ Stock checking query
|
|
158
|
+
โโโ ๐ application/domain/services/
|
|
159
|
+
โ โโโ ๐ stock-validator.service.ts ๐ Stock validation logic
|
|
160
|
+
โโโ ... (all CRUD operations)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### ๐ฅ **Healthcare System**
|
|
118
164
|
|
|
119
165
|
```bash
|
|
120
|
-
#
|
|
121
|
-
ddd
|
|
166
|
+
# Patient management
|
|
167
|
+
ddd scaffold Patient -m patients
|
|
168
|
+
|
|
169
|
+
# Medical records with events
|
|
170
|
+
ddd scaffold MedicalRecord -m medical-records
|
|
171
|
+
ddd generate event RecordCreated -m medical-records
|
|
172
|
+
ddd generate event RecordUpdated -m medical-records
|
|
173
|
+
|
|
174
|
+
# Appointment scheduling
|
|
175
|
+
ddd generate query FindAvailableSlots -m appointments
|
|
176
|
+
ddd generate service AppointmentScheduler -m appointments
|
|
122
177
|
```
|
|
123
178
|
|
|
124
|
-
###
|
|
179
|
+
### ๐ **Learning Management System**
|
|
125
180
|
|
|
126
181
|
```bash
|
|
127
|
-
#
|
|
128
|
-
ddd
|
|
182
|
+
# Course management
|
|
183
|
+
ddd scaffold Course -m courses
|
|
184
|
+
ddd generate service CourseEnrollment -m courses
|
|
185
|
+
ddd generate event StudentEnrolled -m courses
|
|
186
|
+
|
|
187
|
+
# Progress tracking
|
|
188
|
+
ddd generate query GetStudentProgress -m progress
|
|
189
|
+
ddd generate service ProgressCalculator -m progress
|
|
190
|
+
```
|
|
129
191
|
|
|
130
|
-
|
|
131
|
-
ddd generate service PolicyValidation -m policies
|
|
192
|
+
> **๐ฏ Each example follows identical patterns** - Learn once, apply everywhere.
|
|
132
193
|
|
|
133
|
-
|
|
134
|
-
|
|
194
|
+
## Philosophy & Principles
|
|
195
|
+
|
|
196
|
+
This CLI embodies **pragmatic Domain-Driven Design** with unwavering consistency:
|
|
197
|
+
|
|
198
|
+
### ๐ **Immutable Architecture**
|
|
199
|
+
- **"Code once, never touch"** - Each generated component remains unchanged after creation
|
|
200
|
+
- **Evolution over modification** - New requirements create new use cases, never modify existing ones
|
|
201
|
+
- **Predictable structure** - Every project follows identical patterns, enabling instant developer onboarding
|
|
202
|
+
|
|
203
|
+
### ๐ฏ **Opinionated by Design**
|
|
204
|
+
- **Zero configuration fatigue** - One way to do things, the right way
|
|
205
|
+
- **Consistent naming** - PascalCase entities, kebab-case modules, predictable file names
|
|
206
|
+
- **Proven patterns** - Battle-tested DDD/CQRS structure from real-world enterprise applications
|
|
207
|
+
|
|
208
|
+
### ๐ **Developer Experience First**
|
|
209
|
+
- **No bikeshedding** - Spend time on business logic, not folder structure debates
|
|
210
|
+
- **IDE-friendly** - Barrel exports, clear interfaces, TypeScript-first approach
|
|
211
|
+
- **Team consistency** - Every developer generates identical code structure
|
|
212
|
+
|
|
213
|
+
### ๐๏ธ **Enterprise Ready**
|
|
214
|
+
- **Separation of concerns** - Domain logic isolated from infrastructure
|
|
215
|
+
- **CQRS compliance** - Commands for writes, queries for reads
|
|
216
|
+
- **Testable by default** - Clean interfaces enable easy unit testing
|
|
217
|
+
|
|
218
|
+
## What Makes This Different?
|
|
219
|
+
|
|
220
|
+
### ๐จ **Structure That Scales**
|
|
221
|
+
|
|
222
|
+
Every module follows this **identical, battle-tested structure**:
|
|
135
223
|
|
|
136
|
-
# Generate a query handler
|
|
137
|
-
ddd generate query GetPolicyDetails -m policies
|
|
138
224
|
```
|
|
225
|
+
modules/
|
|
226
|
+
โโโ [feature-name]/ # ๐ Feature boundary
|
|
227
|
+
โโโ [feature-name].module.ts # ๐ง NestJS module wiring
|
|
228
|
+
โโโ application/ # ๐ Application layer
|
|
229
|
+
โ โโโ commands/ # โ๏ธ CQRS commands (writes)
|
|
230
|
+
โ โ โโโ create-[entity].command.ts # โโ Create operations
|
|
231
|
+
โ โ โโโ update-[entity].command.ts # โโ Update operations
|
|
232
|
+
โ โ โโโ delete-[entity].command.ts # โโ Delete operations
|
|
233
|
+
โ โ โโโ index.ts # โโ Barrel exports
|
|
234
|
+
โ โโโ controllers/ # ๐ HTTP/GraphQL endpoints
|
|
235
|
+
โ โ โโโ [entity].controller.ts # โโ REST API endpoints
|
|
236
|
+
โ โ โโโ index.ts # โโ Barrel exports
|
|
237
|
+
โ โโโ domain/ # ๐ง Pure business logic
|
|
238
|
+
โ โ โโโ entities/ # ๐ฆ Business objects
|
|
239
|
+
โ โ โ โโโ [entity].entity.ts # โโ Domain entity
|
|
240
|
+
โ โ โ โโโ index.ts # โโ Barrel exports
|
|
241
|
+
โ โ โโโ events/ # ๐ฏ Domain events
|
|
242
|
+
โ โ โ โโโ [entity]-created.event.ts # โโ Event definitions
|
|
243
|
+
โ โ โ โโโ index.ts # โโ Barrel exports
|
|
244
|
+
โ โ โโโ services/ # โ๏ธ Domain services
|
|
245
|
+
โ โ โ โโโ [entity].service.ts # โโ Business rules
|
|
246
|
+
โ โ โ โโโ index.ts # โโ Barrel exports
|
|
247
|
+
โ โ โโโ usecases/ # ๐ฌ Use case operations
|
|
248
|
+
โ โ โโโ create-[entity].usecase.ts# โโ Create business logic
|
|
249
|
+
โ โ โโโ update-[entity].usecase.ts# โโ Update business logic
|
|
250
|
+
โ โ โโโ delete-[entity].usecase.ts# โโ Delete business logic
|
|
251
|
+
โ โ โโโ index.ts # โโ Barrel exports
|
|
252
|
+
โ โโโ dto/ # ๐ Data contracts
|
|
253
|
+
โ โ โโโ requests/ # ๐ค Inbound data
|
|
254
|
+
โ โ โ โโโ create-[entity].dto.ts # โโ Create request
|
|
255
|
+
โ โ โ โโโ update-[entity].dto.ts # โโ Update request
|
|
256
|
+
โ โ โ โโโ index.ts # โโ Barrel exports
|
|
257
|
+
โ โ โโโ responses/ # ๐ฅ Outbound data
|
|
258
|
+
โ โ โ โโโ [entity].response.ts # โโ Entity response
|
|
259
|
+
โ โ โ โโโ index.ts # โโ Barrel exports
|
|
260
|
+
โ โ โโโ index.ts # โโ Barrel exports
|
|
261
|
+
โ โโโ queries/ # ๐ CQRS queries (reads)
|
|
262
|
+
โ โโโ get-[entity].handler.ts # โโ Single entity query
|
|
263
|
+
โ โโโ list-[entities].handler.ts # โโ Multiple entities query
|
|
264
|
+
โ โโโ index.ts # โโ Barrel exports
|
|
265
|
+
โโโ infrastructure/ # ๐๏ธ Infrastructure layer
|
|
266
|
+
โโโ mappers/ # ๐ Data transformation
|
|
267
|
+
โ โโโ [entity].mapper.ts # โโ Domain โ ORM mapping
|
|
268
|
+
โ โโโ index.ts # โโ Barrel exports
|
|
269
|
+
โโโ orm-entities/ # ๐๏ธ Database schema
|
|
270
|
+
โ โโโ [entity].orm-entity.ts # โโ TypeORM entity
|
|
271
|
+
โ โโโ index.ts # โโ Barrel exports
|
|
272
|
+
โโโ repositories/ # ๐พ Data access
|
|
273
|
+
โโโ [entity].repository.ts # โโ Repository implementation
|
|
274
|
+
โโโ index.ts # โโ Barrel exports
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
> **๐ฏ Every feature looks identical** - No surprises, no confusion, just consistency.
|
|
139
278
|
|
|
140
|
-
|
|
279
|
+
### ๐ง **Smart Defaults & Conventions**
|
|
141
280
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
281
|
+
```bash
|
|
282
|
+
# Naming follows strict patterns
|
|
283
|
+
ddd generate entity UserProfile # โ user-profile.entity.ts
|
|
284
|
+
ddd generate service OrderValidator # โ order-validator.service.ts
|
|
285
|
+
ddd generate event PaymentProcessed # โ payment-processed.event.ts
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Built-in Intelligence:**
|
|
289
|
+
- **๐ Barrel exports** - Automatic `index.ts` files for clean imports
|
|
290
|
+
- **๐ TypeScript strict** - Zero `any` types, full type safety
|
|
291
|
+
- **๐ DI ready** - Injectable decorators configured
|
|
292
|
+
- **๐ Interface first** - Clear contracts between layers
|
|
293
|
+
- **๐ Predictable paths** - Same location every time
|
|
294
|
+
|
|
295
|
+
### ๐ก **Enterprise Patterns**
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
// โ
Commands (writes) - Tell, don't ask
|
|
299
|
+
@CommandHandler(CreateUserCommand)
|
|
300
|
+
export class CreateUserHandler {
|
|
301
|
+
async execute(command: CreateUserCommand): Promise<void> {
|
|
302
|
+
// Returns nothing - just does the work
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// โ
Queries (reads) - Ask, don't tell
|
|
307
|
+
@QueryHandler(GetUserQuery)
|
|
308
|
+
export class GetUserHandler {
|
|
309
|
+
async execute(query: GetUserQuery): Promise<UserResponse> {
|
|
310
|
+
// Returns data - no side effects
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// โ
Domain Events - Loose coupling
|
|
315
|
+
export class UserCreatedEvent implements IEvent {
|
|
316
|
+
constructor(public readonly userId: string) {}
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Battle-tested principles:**
|
|
321
|
+
- **Command/Query Separation** - Writes vs reads clearly separated
|
|
322
|
+
- **Domain Events** - Decoupled communication between bounded contexts
|
|
323
|
+
- **Repository Pattern** - Abstract data access from business logic
|
|
324
|
+
- **Clean Architecture** - Dependencies point inward to domain
|
|
147
325
|
|
|
148
326
|
## After Generation
|
|
149
327
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
328
|
+
### ๐ง **Your 5-Minute Setup Checklist:**
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
# โ
1. Generated files are ready - Review structure
|
|
332
|
+
ls -la modules/your-feature/
|
|
333
|
+
|
|
334
|
+
# โ
2. Add business properties to entities
|
|
335
|
+
# Edit: application/domain/entities/[entity].entity.ts
|
|
336
|
+
# Add: name: string; email: string; etc.
|
|
337
|
+
|
|
338
|
+
# โ
3. Update DTOs with validation rules
|
|
339
|
+
# Edit: application/dto/requests/create-[entity].dto.ts
|
|
340
|
+
# Add: @IsEmail() email: string; @IsNotEmpty() name: string;
|
|
341
|
+
|
|
342
|
+
# โ
4. Configure database mappings
|
|
343
|
+
# Edit: infrastructure/orm-entities/[entity].orm-entity.ts
|
|
344
|
+
# Add: @Column() name: string; @Column() email: string;
|
|
345
|
+
|
|
346
|
+
# โ
5. Wire up the module
|
|
347
|
+
# Edit: app.module.ts
|
|
348
|
+
# Add: YourFeatureModule to imports array
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### ๐ฏ **Focus on Business Value:**
|
|
352
|
+
```typescript
|
|
353
|
+
// โ
Write business rules in domain services
|
|
354
|
+
export class OrderValidator {
|
|
355
|
+
validateBusinessRules(order: Order): ValidationResult {
|
|
356
|
+
// Your domain logic here - not infrastructure concerns
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// โ
Add complex queries for reporting
|
|
361
|
+
@QueryHandler(GetMonthlyRevenueQuery)
|
|
362
|
+
export class GetMonthlyRevenueHandler {
|
|
363
|
+
async execute(query: GetMonthlyRevenueQuery) {
|
|
364
|
+
// Complex business queries - not CRUD
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// โ
Handle domain events for integration
|
|
369
|
+
@EventsHandler(OrderCreatedEvent)
|
|
370
|
+
export class OrderCreatedHandler {
|
|
371
|
+
async handle(event: OrderCreatedEvent) {
|
|
372
|
+
// Send emails, update analytics, etc.
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
> **๐ From scaffolding to production in minutes, not days**
|
|
378
|
+
|
|
379
|
+
## Why This CLI Exists
|
|
380
|
+
|
|
381
|
+
### ๐ค **The Problem**
|
|
382
|
+
- Endless debates about folder structure
|
|
383
|
+
- Inconsistent naming across team members
|
|
384
|
+
- Copy-pasting boilerplate between features
|
|
385
|
+
- Mixed patterns in the same codebase
|
|
386
|
+
- New developers spending weeks learning "our way"
|
|
387
|
+
|
|
388
|
+
### ๐ฏ **The Solution**
|
|
389
|
+
- **One structure** that works for all features
|
|
390
|
+
- **Zero configuration** - works out of the box
|
|
391
|
+
- **Battle-tested patterns** from real enterprise apps
|
|
392
|
+
- **Instant onboarding** - same structure everywhere
|
|
393
|
+
- **Focus on business logic** instead of architecture decisions
|
|
155
394
|
|
|
156
|
-
|
|
395
|
+
### ๐ **The Result**
|
|
396
|
+
- 10x faster feature development
|
|
397
|
+
- Consistent codebase architecture
|
|
398
|
+
- Easy code reviews and maintenance
|
|
399
|
+
- New developers productive from day one
|
|
400
|
+
- No more "where does this file go?" questions
|
|
157
401
|
|
|
158
|
-
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Contributing & Development
|
|
405
|
+
|
|
406
|
+
### ๐ง **Local Development**
|
|
159
407
|
|
|
160
408
|
```bash
|
|
161
|
-
#
|
|
409
|
+
# Clone and setup
|
|
410
|
+
git clone https://github.com/eshe-huli/nestjs-ddd-cli
|
|
411
|
+
cd nestjs-ddd-cli
|
|
412
|
+
npm install
|
|
413
|
+
|
|
414
|
+
# Test changes locally
|
|
162
415
|
npm run dev -- generate entity Test -m test
|
|
163
416
|
|
|
164
|
-
#
|
|
417
|
+
# Build for production
|
|
165
418
|
npm run build
|
|
166
419
|
|
|
167
|
-
# Test globally
|
|
420
|
+
# Test globally installed version
|
|
168
421
|
ddd generate entity Test -m test
|
|
169
|
-
```
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### ๐งช **Testing Your Changes**
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
# Create a test project
|
|
428
|
+
mkdir test-project && cd test-project
|
|
429
|
+
|
|
430
|
+
# Test scaffolding
|
|
431
|
+
ddd scaffold Product -m inventory
|
|
432
|
+
|
|
433
|
+
# Verify structure matches expectations
|
|
434
|
+
tree modules/inventory/
|
|
435
|
+
|
|
436
|
+
# Test individual generators
|
|
437
|
+
ddd generate service ProductValidator -m inventory
|
|
438
|
+
ddd generate event ProductCreated -m inventory
|
|
439
|
+
ddd generate query GetProductsByCategory -m inventory
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### ๐ **Template Structure**
|
|
443
|
+
```
|
|
444
|
+
src/templates/
|
|
445
|
+
โโโ ๐ entity/ # Domain entity templates
|
|
446
|
+
โโโ ๐ service/ # Domain service templates
|
|
447
|
+
โโโ ๐ event/ # Domain event templates
|
|
448
|
+
โโโ ๐ query/ # Query handler templates
|
|
449
|
+
โโโ ๐ usecase/ # Use case templates
|
|
450
|
+
โโโ ๐ controller/ # Controller templates
|
|
451
|
+
โโโ ๐ repository/ # Repository templates
|
|
452
|
+
โโโ ๐ ... (more templates)
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
> **๐ค Pull requests welcome!** Help make DDD development even better.
|
|
456
|
+
|
|
457
|
+
## License
|
|
458
|
+
|
|
459
|
+
MIT - Build amazing things ๐
|