fragment-ts 1.0.37 → 1.0.39
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/API.md +38 -248
- package/dist/cli/commands/diagnostics.command.d.ts.map +1 -1
- package/dist/cli/commands/diagnostics.command.js +5 -2
- package/dist/cli/commands/diagnostics.command.js.map +1 -1
- package/dist/cli/commands/init.command.d.ts.map +1 -1
- package/dist/cli/commands/init.command.js +16 -54
- package/dist/cli/commands/init.command.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/diagnostics.command.ts +9 -2
- package/src/cli/commands/init.command.ts +16 -56
package/API.md
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
1
|
# API Reference
|
|
4
2
|
|
|
5
3
|
## Core Decorators
|
|
@@ -9,7 +7,6 @@
|
|
|
9
7
|
Application class decorator that configures the web server.
|
|
10
8
|
|
|
11
9
|
**Parameters:**
|
|
12
|
-
|
|
13
10
|
- `options` (ApplicationOptions, optional):
|
|
14
11
|
- `port`: number (default: 3000) - Server port
|
|
15
12
|
- `host`: string (default: "0.0.0.0") - Server host
|
|
@@ -17,12 +14,11 @@ Application class decorator that configures the web server.
|
|
|
17
14
|
- `autoScan`: boolean (default: true) - Enable automatic component scanning
|
|
18
15
|
|
|
19
16
|
**Example:**
|
|
20
|
-
|
|
21
17
|
```typescript
|
|
22
18
|
@FragmentApplication({
|
|
23
19
|
port: 8080,
|
|
24
|
-
host:
|
|
25
|
-
autoScan: true
|
|
20
|
+
host: 'localhost',
|
|
21
|
+
autoScan: true
|
|
26
22
|
})
|
|
27
23
|
export class Application {}
|
|
28
24
|
```
|
|
@@ -32,13 +28,11 @@ export class Application {}
|
|
|
32
28
|
Class decorator that marks a class as an HTTP controller.
|
|
33
29
|
|
|
34
30
|
**Parameters:**
|
|
35
|
-
|
|
36
31
|
- `path`: string (optional) - Base route path for all methods in this controller
|
|
37
32
|
|
|
38
33
|
**Example:**
|
|
39
|
-
|
|
40
34
|
```typescript
|
|
41
|
-
@Controller(
|
|
35
|
+
@Controller('/users')
|
|
42
36
|
export class UserController {}
|
|
43
37
|
```
|
|
44
38
|
|
|
@@ -47,7 +41,6 @@ export class UserController {}
|
|
|
47
41
|
Class decorator that marks a class as a service (singleton-scoped by default).
|
|
48
42
|
|
|
49
43
|
**Example:**
|
|
50
|
-
|
|
51
44
|
```typescript
|
|
52
45
|
@Service()
|
|
53
46
|
export class UserService {}
|
|
@@ -58,7 +51,6 @@ export class UserService {}
|
|
|
58
51
|
Class decorator that marks a class as a repository (singleton-scoped by default).
|
|
59
52
|
|
|
60
53
|
**Example:**
|
|
61
|
-
|
|
62
54
|
```typescript
|
|
63
55
|
@Repository()
|
|
64
56
|
export class UserRepository {}
|
|
@@ -69,7 +61,6 @@ export class UserRepository {}
|
|
|
69
61
|
Class decorator that marks a class as an auto-configuration component. These are loaded automatically and can conditionally register beans.
|
|
70
62
|
|
|
71
63
|
**Example:**
|
|
72
|
-
|
|
73
64
|
```typescript
|
|
74
65
|
@AutoConfiguration()
|
|
75
66
|
export class DatabaseAutoConfiguration {}
|
|
@@ -80,111 +71,14 @@ export class DatabaseAutoConfiguration {}
|
|
|
80
71
|
Class decorator that marks a class as injectable with a specific scope.
|
|
81
72
|
|
|
82
73
|
**Parameters:**
|
|
83
|
-
|
|
84
74
|
- `scope`: "singleton" | "request" | "transient" (default: "singleton")
|
|
85
75
|
|
|
86
76
|
**Example:**
|
|
87
|
-
|
|
88
77
|
```typescript
|
|
89
|
-
@Injectable(
|
|
78
|
+
@Injectable('transient')
|
|
90
79
|
export class RequestLogger {}
|
|
91
80
|
```
|
|
92
81
|
|
|
93
|
-
## Enhancement Decorators
|
|
94
|
-
|
|
95
|
-
### `@FragmentMiddleware(middlewareClass)`
|
|
96
|
-
|
|
97
|
-
Class or method decorator that applies Express-compatible middleware to controllers or routes.
|
|
98
|
-
|
|
99
|
-
**Parameters:**
|
|
100
|
-
|
|
101
|
-
- `middlewareClass`: Class implementing `Middleware` interface
|
|
102
|
-
|
|
103
|
-
**Example:**
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
@FragmentMiddleware(AuthMiddleware)
|
|
107
|
-
@Controller("/api")
|
|
108
|
-
export class AppController {}
|
|
109
|
-
|
|
110
|
-
// Or on a specific route
|
|
111
|
-
@Controller("/api")
|
|
112
|
-
export class AppController {
|
|
113
|
-
@Get("/health")
|
|
114
|
-
@FragmentMiddleware(LoggingMiddleware)
|
|
115
|
-
health() {}
|
|
116
|
-
}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### `@FragmentGuard(guardClass)`
|
|
120
|
-
|
|
121
|
-
Class or method decorator that applies authorization/activation guards to controllers or routes.
|
|
122
|
-
|
|
123
|
-
**Parameters:**
|
|
124
|
-
|
|
125
|
-
- `guardClass`: Class implementing `Guard` interface
|
|
126
|
-
|
|
127
|
-
**Example:**
|
|
128
|
-
|
|
129
|
-
```typescript
|
|
130
|
-
@FragmentGuard(AuthGuard)
|
|
131
|
-
@Controller("/secure")
|
|
132
|
-
export class SecureController {}
|
|
133
|
-
|
|
134
|
-
// Or on a specific route
|
|
135
|
-
@Controller("/api")
|
|
136
|
-
export class AppController {
|
|
137
|
-
@Get("/admin")
|
|
138
|
-
@FragmentGuard(AdminGuard)
|
|
139
|
-
adminData() {}
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### `@FragmentInterceptor(interceptorClass)`
|
|
144
|
-
|
|
145
|
-
Class or method decorator that applies interceptors to transform request/response data.
|
|
146
|
-
|
|
147
|
-
**Parameters:**
|
|
148
|
-
|
|
149
|
-
- `interceptorClass`: Class implementing `Interceptor` interface
|
|
150
|
-
|
|
151
|
-
**Example:**
|
|
152
|
-
|
|
153
|
-
```typescript
|
|
154
|
-
@FragmentInterceptor(TransformInterceptor)
|
|
155
|
-
@Controller("/api")
|
|
156
|
-
export class DataController {}
|
|
157
|
-
|
|
158
|
-
// Or on a specific route
|
|
159
|
-
@Controller("/api")
|
|
160
|
-
export class AppController {
|
|
161
|
-
@Get("/data")
|
|
162
|
-
@FragmentInterceptor(CacheInterceptor)
|
|
163
|
-
getData() {}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### `@FragmentExceptionFilter(filterClass)`
|
|
168
|
-
|
|
169
|
-
Class or method decorator that applies exception filters for error handling.
|
|
170
|
-
|
|
171
|
-
**Parameters:**
|
|
172
|
-
|
|
173
|
-
- `filterClass`: Class implementing `ExceptionFilter` interface
|
|
174
|
-
|
|
175
|
-
**Example:**
|
|
176
|
-
|
|
177
|
-
```typescript
|
|
178
|
-
@FragmentExceptionFilter(GlobalExceptionFilter)
|
|
179
|
-
@FragmentApplication()
|
|
180
|
-
export class Application {}
|
|
181
|
-
|
|
182
|
-
// Or on a controller
|
|
183
|
-
@FragmentExceptionFilter(DatabaseExceptionFilter)
|
|
184
|
-
@Controller("/api")
|
|
185
|
-
export class AppController {}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
82
|
## Property Decorators
|
|
189
83
|
|
|
190
84
|
### `@Autowired()`
|
|
@@ -192,7 +86,6 @@ export class AppController {}
|
|
|
192
86
|
Property decorator that injects a dependency based on its type.
|
|
193
87
|
|
|
194
88
|
**Example:**
|
|
195
|
-
|
|
196
89
|
```typescript
|
|
197
90
|
class MyService {
|
|
198
91
|
@Autowired()
|
|
@@ -205,16 +98,14 @@ class MyService {
|
|
|
205
98
|
Property decorator that injects a dependency by token (string or class).
|
|
206
99
|
|
|
207
100
|
**Parameters:**
|
|
208
|
-
|
|
209
101
|
- `token`: string | Function - Token to resolve the dependency
|
|
210
102
|
|
|
211
103
|
**Example:**
|
|
212
|
-
|
|
213
104
|
```typescript
|
|
214
105
|
class MyService {
|
|
215
|
-
@Inject(
|
|
106
|
+
@Inject('Logger')
|
|
216
107
|
private logger!: Logger;
|
|
217
|
-
|
|
108
|
+
|
|
218
109
|
@Inject(CacheService)
|
|
219
110
|
private cacheService!: CacheService;
|
|
220
111
|
}
|
|
@@ -225,11 +116,9 @@ class MyService {
|
|
|
225
116
|
Property decorator that injects a TypeORM repository for the specified entity.
|
|
226
117
|
|
|
227
118
|
**Parameters:**
|
|
228
|
-
|
|
229
119
|
- `entity`: Function - Entity class for which to get the repository
|
|
230
120
|
|
|
231
121
|
**Example:**
|
|
232
|
-
|
|
233
122
|
```typescript
|
|
234
123
|
@Repository()
|
|
235
124
|
class UserRepository {
|
|
@@ -243,18 +132,16 @@ class UserRepository {
|
|
|
243
132
|
Property decorator that injects configuration values from environment variables or config.
|
|
244
133
|
|
|
245
134
|
**Parameters:**
|
|
246
|
-
|
|
247
135
|
- `expression`: string - Configuration expression (e.g., "${PORT:3000}")
|
|
248
136
|
|
|
249
137
|
**Example:**
|
|
250
|
-
|
|
251
138
|
```typescript
|
|
252
139
|
@Service()
|
|
253
140
|
class ConfigService {
|
|
254
|
-
@Value(
|
|
141
|
+
@Value('${PORT:3000}')
|
|
255
142
|
private port!: number;
|
|
256
|
-
|
|
257
|
-
@Value(
|
|
143
|
+
|
|
144
|
+
@Value('${DB_HOST:localhost}')
|
|
258
145
|
private dbHost!: string;
|
|
259
146
|
}
|
|
260
147
|
```
|
|
@@ -264,14 +151,12 @@ class ConfigService {
|
|
|
264
151
|
Property decorator that specifies which bean to inject when multiple implementations exist.
|
|
265
152
|
|
|
266
153
|
**Parameters:**
|
|
267
|
-
|
|
268
154
|
- `name`: string - Qualifier name to match
|
|
269
155
|
|
|
270
156
|
**Example:**
|
|
271
|
-
|
|
272
157
|
```typescript
|
|
273
158
|
class PaymentService {
|
|
274
|
-
@Qualifier(
|
|
159
|
+
@Qualifier('creditCard')
|
|
275
160
|
@Autowired()
|
|
276
161
|
private paymentProcessor!: PaymentProcessor;
|
|
277
162
|
}
|
|
@@ -282,7 +167,6 @@ class PaymentService {
|
|
|
282
167
|
Property decorator that marks a dependency as optional (won't throw if not found).
|
|
283
168
|
|
|
284
169
|
**Example:**
|
|
285
|
-
|
|
286
170
|
```typescript
|
|
287
171
|
class FeatureService {
|
|
288
172
|
@Autowired()
|
|
@@ -296,7 +180,6 @@ class FeatureService {
|
|
|
296
180
|
Property decorator that lazily loads a dependency on first access.
|
|
297
181
|
|
|
298
182
|
**Example:**
|
|
299
|
-
|
|
300
183
|
```typescript
|
|
301
184
|
class HeavyService {
|
|
302
185
|
@Lazy()
|
|
@@ -312,7 +195,6 @@ class HeavyService {
|
|
|
312
195
|
Method decorator that marks a method to be called after dependency injection is complete.
|
|
313
196
|
|
|
314
197
|
**Example:**
|
|
315
|
-
|
|
316
198
|
```typescript
|
|
317
199
|
@Service()
|
|
318
200
|
class DatabaseService {
|
|
@@ -328,7 +210,6 @@ class DatabaseService {
|
|
|
328
210
|
Method decorator that marks a method to be called before the bean is destroyed.
|
|
329
211
|
|
|
330
212
|
**Example:**
|
|
331
|
-
|
|
332
213
|
```typescript
|
|
333
214
|
@Service()
|
|
334
215
|
class DatabaseService {
|
|
@@ -346,19 +227,17 @@ class DatabaseService {
|
|
|
346
227
|
Method decorator for GET HTTP endpoints.
|
|
347
228
|
|
|
348
229
|
**Parameters:**
|
|
349
|
-
|
|
350
230
|
- `path`: string (optional) - Route path
|
|
351
231
|
|
|
352
232
|
**Example:**
|
|
353
|
-
|
|
354
233
|
```typescript
|
|
355
|
-
@Controller(
|
|
234
|
+
@Controller('/users')
|
|
356
235
|
class UserController {
|
|
357
236
|
@Get()
|
|
358
237
|
findAll() {}
|
|
359
|
-
|
|
360
|
-
@Get(
|
|
361
|
-
findById(@Param(
|
|
238
|
+
|
|
239
|
+
@Get('/:id')
|
|
240
|
+
findById(@Param('id') id: string) {}
|
|
362
241
|
}
|
|
363
242
|
```
|
|
364
243
|
|
|
@@ -367,13 +246,11 @@ class UserController {
|
|
|
367
246
|
Method decorator for POST HTTP endpoints.
|
|
368
247
|
|
|
369
248
|
**Parameters:**
|
|
370
|
-
|
|
371
249
|
- `path`: string (optional) - Route path
|
|
372
250
|
|
|
373
251
|
**Example:**
|
|
374
|
-
|
|
375
252
|
```typescript
|
|
376
|
-
@Controller(
|
|
253
|
+
@Controller('/users')
|
|
377
254
|
class UserController {
|
|
378
255
|
@Post()
|
|
379
256
|
create(@Body() createUserDto: CreateUserDto) {}
|
|
@@ -385,16 +262,14 @@ class UserController {
|
|
|
385
262
|
Method decorator for PUT HTTP endpoints.
|
|
386
263
|
|
|
387
264
|
**Parameters:**
|
|
388
|
-
|
|
389
265
|
- `path`: string (optional) - Route path
|
|
390
266
|
|
|
391
267
|
**Example:**
|
|
392
|
-
|
|
393
268
|
```typescript
|
|
394
|
-
@Controller(
|
|
269
|
+
@Controller('/users')
|
|
395
270
|
class UserController {
|
|
396
|
-
@Put(
|
|
397
|
-
update(@Param(
|
|
271
|
+
@Put('/:id')
|
|
272
|
+
update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {}
|
|
398
273
|
}
|
|
399
274
|
```
|
|
400
275
|
|
|
@@ -403,16 +278,14 @@ class UserController {
|
|
|
403
278
|
Method decorator for DELETE HTTP endpoints.
|
|
404
279
|
|
|
405
280
|
**Parameters:**
|
|
406
|
-
|
|
407
281
|
- `path`: string (optional) - Route path
|
|
408
282
|
|
|
409
283
|
**Example:**
|
|
410
|
-
|
|
411
284
|
```typescript
|
|
412
|
-
@Controller(
|
|
285
|
+
@Controller('/users')
|
|
413
286
|
class UserController {
|
|
414
|
-
@Delete(
|
|
415
|
-
delete(@Param(
|
|
287
|
+
@Delete('/:id')
|
|
288
|
+
delete(@Param('id') id: string) {}
|
|
416
289
|
}
|
|
417
290
|
```
|
|
418
291
|
|
|
@@ -421,16 +294,14 @@ class UserController {
|
|
|
421
294
|
Method decorator for PATCH HTTP endpoints.
|
|
422
295
|
|
|
423
296
|
**Parameters:**
|
|
424
|
-
|
|
425
297
|
- `path`: string (optional) - Route path
|
|
426
298
|
|
|
427
299
|
**Example:**
|
|
428
|
-
|
|
429
300
|
```typescript
|
|
430
|
-
@Controller(
|
|
301
|
+
@Controller('/users')
|
|
431
302
|
class UserController {
|
|
432
|
-
@Patch(
|
|
433
|
-
partialUpdate(@Param(
|
|
303
|
+
@Patch('/:id')
|
|
304
|
+
partialUpdate(@Param('id') id: string, @Body() partialUser: Partial<User>) {}
|
|
434
305
|
}
|
|
435
306
|
```
|
|
436
307
|
|
|
@@ -441,7 +312,6 @@ class UserController {
|
|
|
441
312
|
Parameter decorator to inject the request body.
|
|
442
313
|
|
|
443
314
|
**Example:**
|
|
444
|
-
|
|
445
315
|
```typescript
|
|
446
316
|
@Post()
|
|
447
317
|
create(@Body() createUserDto: CreateUserDto) {}
|
|
@@ -452,11 +322,9 @@ create(@Body() createUserDto: CreateUserDto) {}
|
|
|
452
322
|
Parameter decorator to inject route parameters.
|
|
453
323
|
|
|
454
324
|
**Parameters:**
|
|
455
|
-
|
|
456
325
|
- `name`: string (optional) - Specific parameter name to extract
|
|
457
326
|
|
|
458
327
|
**Example:**
|
|
459
|
-
|
|
460
328
|
```typescript
|
|
461
329
|
@Get('/:id')
|
|
462
330
|
findById(@Param('id') id: string) {}
|
|
@@ -470,11 +338,9 @@ findPost(@Param() params: { userId: string, postId: string }) {}
|
|
|
470
338
|
Parameter decorator to inject query parameters.
|
|
471
339
|
|
|
472
340
|
**Parameters:**
|
|
473
|
-
|
|
474
341
|
- `name`: string (optional) - Specific query parameter name to extract
|
|
475
342
|
|
|
476
343
|
**Example:**
|
|
477
|
-
|
|
478
344
|
```typescript
|
|
479
345
|
@Get()
|
|
480
346
|
search(@Query('q') query: string, @Query('page') page: number) {}
|
|
@@ -488,11 +354,9 @@ filter(@Query() queryParams: { category?: string, minPrice?: number }) {}
|
|
|
488
354
|
Parameter decorator to inject request headers.
|
|
489
355
|
|
|
490
356
|
**Parameters:**
|
|
491
|
-
|
|
492
357
|
- `name`: string (optional) - Specific header name to extract
|
|
493
358
|
|
|
494
359
|
**Example:**
|
|
495
|
-
|
|
496
360
|
```typescript
|
|
497
361
|
@Get()
|
|
498
362
|
getWithHeaders(@Header('authorization') authHeader: string) {}
|
|
@@ -506,7 +370,6 @@ getInfo(@Header() headers: Record<string, string>) {}
|
|
|
506
370
|
Parameter decorator to inject the Express Request object.
|
|
507
371
|
|
|
508
372
|
**Example:**
|
|
509
|
-
|
|
510
373
|
```typescript
|
|
511
374
|
@Get()
|
|
512
375
|
handleRequest(@Req() req: Request) {
|
|
@@ -519,7 +382,6 @@ handleRequest(@Req() req: Request) {
|
|
|
519
382
|
Parameter decorator to inject the Express Response object.
|
|
520
383
|
|
|
521
384
|
**Example:**
|
|
522
|
-
|
|
523
385
|
```typescript
|
|
524
386
|
@Get('/file')
|
|
525
387
|
getFile(@Res() res: Response) {
|
|
@@ -534,11 +396,9 @@ getFile(@Res() res: Response) {
|
|
|
534
396
|
Class decorator that registers the component only if the specified class is available.
|
|
535
397
|
|
|
536
398
|
**Parameters:**
|
|
537
|
-
|
|
538
399
|
- `classRef`: any - Reference to the class to check for
|
|
539
400
|
|
|
540
401
|
**Example:**
|
|
541
|
-
|
|
542
402
|
```typescript
|
|
543
403
|
@AutoConfiguration()
|
|
544
404
|
@ConditionalOnClass(Redis)
|
|
@@ -550,11 +410,9 @@ class RedisAutoConfiguration {}
|
|
|
550
410
|
Class decorator that registers the component only if no bean of the specified type is already registered.
|
|
551
411
|
|
|
552
412
|
**Parameters:**
|
|
553
|
-
|
|
554
413
|
- `token`: any - Token or class to check for
|
|
555
414
|
|
|
556
415
|
**Example:**
|
|
557
|
-
|
|
558
416
|
```typescript
|
|
559
417
|
@Service()
|
|
560
418
|
@ConditionalOnMissingBean(LoggerService)
|
|
@@ -566,15 +424,13 @@ class DefaultLoggerService implements LoggerService {}
|
|
|
566
424
|
Class decorator that registers the component only if the specified environment property exists (and optionally matches a value).
|
|
567
425
|
|
|
568
426
|
**Parameters:**
|
|
569
|
-
|
|
570
427
|
- `key`: string - Environment variable key to check
|
|
571
428
|
- `expectedValue`: any (optional) - Expected value of the environment variable
|
|
572
429
|
|
|
573
430
|
**Example:**
|
|
574
|
-
|
|
575
431
|
```typescript
|
|
576
432
|
@Service()
|
|
577
|
-
@ConditionalOnProperty(
|
|
433
|
+
@ConditionalOnProperty('USE_CACHE', 'true')
|
|
578
434
|
class CacheService {}
|
|
579
435
|
```
|
|
580
436
|
|
|
@@ -587,7 +443,6 @@ Returns the singleton instance of the dependency injection container.
|
|
|
587
443
|
**Returns:** DIContainer
|
|
588
444
|
|
|
589
445
|
**Example:**
|
|
590
|
-
|
|
591
446
|
```typescript
|
|
592
447
|
const container = DIContainer.getInstance();
|
|
593
448
|
```
|
|
@@ -597,13 +452,11 @@ const container = DIContainer.getInstance();
|
|
|
597
452
|
Registers a token with an instance or factory function.
|
|
598
453
|
|
|
599
454
|
**Parameters:**
|
|
600
|
-
|
|
601
455
|
- `token`: any - Token to register
|
|
602
456
|
- `instance`: any (optional) - Instance to register
|
|
603
457
|
- `factory`: () => any (optional) - Factory function to create instances
|
|
604
458
|
|
|
605
459
|
**Example:**
|
|
606
|
-
|
|
607
460
|
```typescript
|
|
608
461
|
container.register(LoggerService, new ConsoleLogger());
|
|
609
462
|
container.register(DatabaseService, null, () => new DatabaseService());
|
|
@@ -614,13 +467,11 @@ container.register(DatabaseService, null, () => new DatabaseService());
|
|
|
614
467
|
Resolves and returns an instance for the specified token.
|
|
615
468
|
|
|
616
469
|
**Parameters:**
|
|
617
|
-
|
|
618
470
|
- `token`: any - Token to resolve
|
|
619
471
|
|
|
620
472
|
**Returns:** T - Resolved instance
|
|
621
473
|
|
|
622
474
|
**Example:**
|
|
623
|
-
|
|
624
475
|
```typescript
|
|
625
476
|
const userService = container.resolve(UserService);
|
|
626
477
|
```
|
|
@@ -630,13 +481,11 @@ const userService = container.resolve(UserService);
|
|
|
630
481
|
Checks if a token has been registered with the container.
|
|
631
482
|
|
|
632
483
|
**Parameters:**
|
|
633
|
-
|
|
634
484
|
- `token`: any - Token to check
|
|
635
485
|
|
|
636
486
|
**Returns:** boolean
|
|
637
487
|
|
|
638
488
|
**Example:**
|
|
639
|
-
|
|
640
489
|
```typescript
|
|
641
490
|
if (container.has(UserService)) {
|
|
642
491
|
// Service is registered
|
|
@@ -650,7 +499,6 @@ Returns all singleton instances maintained by the container.
|
|
|
650
499
|
**Returns:** any[]
|
|
651
500
|
|
|
652
501
|
**Example:**
|
|
653
|
-
|
|
654
502
|
```typescript
|
|
655
503
|
const allServices = container.getAllInstances();
|
|
656
504
|
```
|
|
@@ -660,7 +508,6 @@ const allServices = container.getAllInstances();
|
|
|
660
508
|
Clears all registered tokens and instances from the container.
|
|
661
509
|
|
|
662
510
|
**Example:**
|
|
663
|
-
|
|
664
511
|
```typescript
|
|
665
512
|
container.clear();
|
|
666
513
|
```
|
|
@@ -670,7 +517,6 @@ container.clear();
|
|
|
670
517
|
Resets the container to its initial state.
|
|
671
518
|
|
|
672
519
|
**Example:**
|
|
673
|
-
|
|
674
520
|
```typescript
|
|
675
521
|
container.reset();
|
|
676
522
|
```
|
|
@@ -682,7 +528,6 @@ container.reset();
|
|
|
682
528
|
Creates a new instance of the web application.
|
|
683
529
|
|
|
684
530
|
**Example:**
|
|
685
|
-
|
|
686
531
|
```typescript
|
|
687
532
|
const app = new FragmentWebApplication();
|
|
688
533
|
```
|
|
@@ -692,13 +537,11 @@ const app = new FragmentWebApplication();
|
|
|
692
537
|
Bootstraps the application with the specified application class.
|
|
693
538
|
|
|
694
539
|
**Parameters:**
|
|
695
|
-
|
|
696
540
|
- `appClass`: any - Application class decorated with `@FragmentApplication`
|
|
697
541
|
|
|
698
542
|
**Returns:** Promise<void>
|
|
699
543
|
|
|
700
544
|
**Example:**
|
|
701
|
-
|
|
702
545
|
```typescript
|
|
703
546
|
await app.bootstrap(Application);
|
|
704
547
|
```
|
|
@@ -710,10 +553,9 @@ Returns the underlying Express application instance.
|
|
|
710
553
|
**Returns:** Express
|
|
711
554
|
|
|
712
555
|
**Example:**
|
|
713
|
-
|
|
714
556
|
```typescript
|
|
715
557
|
const expressApp = app.getExpressApp();
|
|
716
|
-
expressApp.use(
|
|
558
|
+
expressApp.use('/custom', customMiddleware);
|
|
717
559
|
```
|
|
718
560
|
|
|
719
561
|
## Metadata Storage API
|
|
@@ -725,7 +567,6 @@ Returns the singleton instance of the metadata storage.
|
|
|
725
567
|
**Returns:** MetadataStorage
|
|
726
568
|
|
|
727
569
|
**Example:**
|
|
728
|
-
|
|
729
570
|
```typescript
|
|
730
571
|
const storage = MetadataStorage.getInstance();
|
|
731
572
|
```
|
|
@@ -735,16 +576,14 @@ const storage = MetadataStorage.getInstance();
|
|
|
735
576
|
Adds class metadata to storage.
|
|
736
577
|
|
|
737
578
|
**Parameters:**
|
|
738
|
-
|
|
739
579
|
- `metadata`: ClassMetadata - Class metadata object
|
|
740
580
|
|
|
741
581
|
**Example:**
|
|
742
|
-
|
|
743
582
|
```typescript
|
|
744
583
|
storage.addClass({
|
|
745
584
|
target: UserService,
|
|
746
|
-
type:
|
|
747
|
-
scope:
|
|
585
|
+
type: 'service',
|
|
586
|
+
scope: 'singleton'
|
|
748
587
|
});
|
|
749
588
|
```
|
|
750
589
|
|
|
@@ -753,13 +592,11 @@ storage.addClass({
|
|
|
753
592
|
Retrieves class metadata for the specified target.
|
|
754
593
|
|
|
755
594
|
**Parameters:**
|
|
756
|
-
|
|
757
595
|
- `target`: any - Target class
|
|
758
596
|
|
|
759
597
|
**Returns:** ClassMetadata | undefined
|
|
760
598
|
|
|
761
599
|
**Example:**
|
|
762
|
-
|
|
763
600
|
```typescript
|
|
764
601
|
const metadata = storage.getClass(UserService);
|
|
765
602
|
```
|
|
@@ -771,7 +608,6 @@ Returns all registered class metadata.
|
|
|
771
608
|
**Returns:** ClassMetadata[]
|
|
772
609
|
|
|
773
610
|
**Example:**
|
|
774
|
-
|
|
775
611
|
```typescript
|
|
776
612
|
const allClasses = storage.getAllClasses();
|
|
777
613
|
```
|
|
@@ -781,11 +617,9 @@ const allClasses = storage.getAllClasses();
|
|
|
781
617
|
Adds method metadata to storage.
|
|
782
618
|
|
|
783
619
|
**Parameters:**
|
|
784
|
-
|
|
785
620
|
- `metadata`: MethodMetadata - Method metadata object
|
|
786
621
|
|
|
787
622
|
**Example:**
|
|
788
|
-
|
|
789
623
|
```typescript
|
|
790
624
|
storage.addMethod({
|
|
791
625
|
target: UserController,
|
|
@@ -801,16 +635,14 @@ storage.addMethod({
|
|
|
801
635
|
Retrieves method metadata for the specified target and property key.
|
|
802
636
|
|
|
803
637
|
**Parameters:**
|
|
804
|
-
|
|
805
638
|
- `target`: any - Target class
|
|
806
639
|
- `propertyKey`: string - Method name
|
|
807
640
|
|
|
808
641
|
**Returns:** MethodMetadata | undefined
|
|
809
642
|
|
|
810
643
|
**Example:**
|
|
811
|
-
|
|
812
644
|
```typescript
|
|
813
|
-
const metadata = storage.getMethod(UserController,
|
|
645
|
+
const metadata = storage.getMethod(UserController, 'findAll');
|
|
814
646
|
```
|
|
815
647
|
|
|
816
648
|
### `storage.getAllMethods()`
|
|
@@ -820,7 +652,6 @@ Returns all registered method metadata.
|
|
|
820
652
|
**Returns:** MethodMetadata[]
|
|
821
653
|
|
|
822
654
|
**Example:**
|
|
823
|
-
|
|
824
655
|
```typescript
|
|
825
656
|
const allMethods = storage.getAllMethods();
|
|
826
657
|
```
|
|
@@ -830,18 +661,16 @@ const allMethods = storage.getAllMethods();
|
|
|
830
661
|
Adds parameter metadata to storage.
|
|
831
662
|
|
|
832
663
|
**Parameters:**
|
|
833
|
-
|
|
834
664
|
- `metadata`: ParamMetadata - Parameter metadata object
|
|
835
665
|
|
|
836
666
|
**Example:**
|
|
837
|
-
|
|
838
667
|
```typescript
|
|
839
668
|
storage.addParam({
|
|
840
669
|
target: UserController.prototype,
|
|
841
|
-
propertyKey:
|
|
670
|
+
propertyKey: 'findById',
|
|
842
671
|
index: 0,
|
|
843
|
-
type:
|
|
844
|
-
paramName:
|
|
672
|
+
type: 'param',
|
|
673
|
+
paramName: 'id'
|
|
845
674
|
});
|
|
846
675
|
```
|
|
847
676
|
|
|
@@ -850,16 +679,14 @@ storage.addParam({
|
|
|
850
679
|
Retrieves parameter metadata for the specified target and property key.
|
|
851
680
|
|
|
852
681
|
**Parameters:**
|
|
853
|
-
|
|
854
682
|
- `target`: any - Target class
|
|
855
683
|
- `propertyKey`: string - Method name
|
|
856
684
|
|
|
857
685
|
**Returns:** ParamMetadata[]
|
|
858
686
|
|
|
859
687
|
**Example:**
|
|
860
|
-
|
|
861
688
|
```typescript
|
|
862
|
-
const params = storage.getParams(UserController.prototype,
|
|
689
|
+
const params = storage.getParams(UserController.prototype, 'findById');
|
|
863
690
|
```
|
|
864
691
|
|
|
865
692
|
## Interfaces
|
|
@@ -880,13 +707,8 @@ interface ApplicationOptions {
|
|
|
880
707
|
```typescript
|
|
881
708
|
interface ClassMetadata {
|
|
882
709
|
target: any;
|
|
883
|
-
type:
|
|
884
|
-
|
|
885
|
-
| "service"
|
|
886
|
-
| "controller"
|
|
887
|
-
| "repository"
|
|
888
|
-
| "auto-configuration";
|
|
889
|
-
scope?: "singleton" | "request" | "transient";
|
|
710
|
+
type: 'injectable' | 'service' | 'controller' | 'repository' | 'auto-configuration';
|
|
711
|
+
scope?: 'singleton' | 'request' | 'transient';
|
|
890
712
|
path?: string;
|
|
891
713
|
}
|
|
892
714
|
```
|
|
@@ -910,53 +732,21 @@ interface ParamMetadata {
|
|
|
910
732
|
target: any;
|
|
911
733
|
propertyKey: string;
|
|
912
734
|
index: number;
|
|
913
|
-
type:
|
|
735
|
+
type: 'body' | 'param' | 'query' | 'header' | 'req' | 'res';
|
|
914
736
|
paramName?: string;
|
|
915
737
|
}
|
|
916
738
|
```
|
|
917
739
|
|
|
918
|
-
### `Middleware`
|
|
919
|
-
|
|
920
|
-
```typescript
|
|
921
|
-
interface Middleware {
|
|
922
|
-
use(req: Request, res: Response, next: NextFunction): void | Promise<void>;
|
|
923
|
-
}
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
### `Guard`
|
|
927
|
-
|
|
928
|
-
```typescript
|
|
929
|
-
interface Guard {
|
|
930
|
-
canActivate(req: Request): boolean | Promise<boolean>;
|
|
931
|
-
}
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
### `Interceptor`
|
|
935
|
-
|
|
936
|
-
```typescript
|
|
937
|
-
interface Interceptor {
|
|
938
|
-
intercept(req: Request, res: Response, result: any): any | Promise<any>;
|
|
939
|
-
}
|
|
940
|
-
```
|
|
941
|
-
|
|
942
|
-
### `ExceptionFilter`
|
|
943
|
-
|
|
944
|
-
```typescript
|
|
945
|
-
interface ExceptionFilter {
|
|
946
|
-
catch(exception: Error, req: Request, res: Response): void;
|
|
947
|
-
}
|
|
948
|
-
```
|
|
949
|
-
|
|
950
740
|
## Type Definitions
|
|
951
741
|
|
|
952
742
|
### `Scope`
|
|
953
743
|
|
|
954
744
|
```typescript
|
|
955
|
-
type Scope =
|
|
745
|
+
type Scope = 'singleton' | 'request' | 'transient';
|
|
956
746
|
```
|
|
957
747
|
|
|
958
748
|
### `MetadataKey`
|
|
959
749
|
|
|
960
750
|
```typescript
|
|
961
751
|
type MetadataKey = (typeof METADATA_KEYS)[keyof typeof METADATA_KEYS];
|
|
962
|
-
```
|
|
752
|
+
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diagnostics.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diagnostics.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAgDlB,UAAU;mBAkCV,SAAS;mBAmCT,mBAAmB;IAgNxC,OAAO,CAAC,MAAM,CAAC,cAAc;IAW7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B,OAAO,CAAC,MAAM,CAAC,QAAQ;IAyBvB,OAAO,CAAC,MAAM,CAAC,UAAU;IA6CzB,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,OAAO,CAAC,MAAM,CAAC,eAAe;WAShB,uBAAuB,IAAI,GAAG;CAmB7C"}
|
|
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
|
|
|
43
43
|
const child_process_1 = require("child_process");
|
|
44
44
|
const config_utils_1 = require("../../shared/config.utils");
|
|
45
45
|
const env_utils_1 = require("../../shared/env.utils");
|
|
46
|
+
const tsconfig_utils_1 = require("../../shared/tsconfig.utils");
|
|
46
47
|
class DiagnosticsCommand {
|
|
47
48
|
static register(program) {
|
|
48
49
|
program
|
|
@@ -362,14 +363,16 @@ diagnose();
|
|
|
362
363
|
const cwd = process.cwd();
|
|
363
364
|
const hasSource = fs.existsSync(path.join(cwd, "src"));
|
|
364
365
|
const hasDist = fs.existsSync(path.join(cwd, "dist"));
|
|
366
|
+
const getOutDir = tsconfig_utils_1.TsConfigUtils.getOutDir();
|
|
367
|
+
const getRootDir = tsconfig_utils_1.TsConfigUtils.getRootDir();
|
|
365
368
|
console.log(` Name: ${packageJson.name || "N/A"}`);
|
|
366
369
|
console.log(` Version: ${packageJson.version || "N/A"}`);
|
|
367
370
|
console.log(` Node: ${process.version}`);
|
|
368
371
|
console.log(` Platform: ${process.platform}`);
|
|
369
372
|
console.log(` Architecture: ${process.arch}`);
|
|
370
373
|
console.log(` Environment: ${env_utils_1.EnvUtils.getEnvironmentMode()}`);
|
|
371
|
-
console.log(` Source: ${hasSource ?
|
|
372
|
-
console.log(` Built: ${hasDist ?
|
|
374
|
+
console.log(` Source: ${hasSource ? `✓ ${getRootDir}` : `✗ ${getRootDir}`}`);
|
|
375
|
+
console.log(` Built: ${hasDist ? `✓ ${getOutDir}` : `✗ ${getOutDir}`}`);
|
|
373
376
|
console.log("");
|
|
374
377
|
}
|
|
375
378
|
static showConfig() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.command.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnostics.command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics.command.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnostics.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAgDxB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAgDxB,iBAAiB;mBA+GjB,gBAAgB;mBA+BhB,yBAAyB;mBA6BzB,sBAAsB;mBAmBtB,qBAAqB;mBA8BrB,iBAAiB;mBAgDjB,mBAAmB;CA4BzC"}
|
|
@@ -149,7 +149,7 @@ class InitCommand {
|
|
|
149
149
|
dirs.push("src/seeds");
|
|
150
150
|
}
|
|
151
151
|
if (config.features.includes("testing")) {
|
|
152
|
-
dirs.push("src/test");
|
|
152
|
+
dirs.push("src/test");
|
|
153
153
|
}
|
|
154
154
|
for (const dir of dirs) {
|
|
155
155
|
await fs.ensureDir(path.join(projectPath, dir));
|
|
@@ -183,19 +183,14 @@ class InitCommand {
|
|
|
183
183
|
"migrate:revert": "fragment migrate:revert",
|
|
184
184
|
},
|
|
185
185
|
dependencies: {
|
|
186
|
-
"fragment-ts": "^1.0.
|
|
186
|
+
"fragment-ts": "^1.0.39",
|
|
187
187
|
"reflect-metadata": "^0.1.13",
|
|
188
|
-
express: "^4.18.2",
|
|
189
188
|
},
|
|
190
189
|
devDependencies: {
|
|
191
190
|
typescript: "^5.3.3",
|
|
192
191
|
"@types/node": "^20.10.5",
|
|
193
|
-
"@types/express": "^4.17.21",
|
|
194
192
|
"ts-node": "^10.9.2",
|
|
195
193
|
"tsconfig-paths": "^4.2.0",
|
|
196
|
-
jest: "^29.7.0",
|
|
197
|
-
"@types/jest": "^29.5.12",
|
|
198
|
-
"ts-jest": "^29.1.2",
|
|
199
194
|
},
|
|
200
195
|
};
|
|
201
196
|
await fs.writeJSON(path.join(projectPath, "package.json"), packageJson, {
|
|
@@ -327,16 +322,19 @@ export class AppService {
|
|
|
327
322
|
@Entity()
|
|
328
323
|
export class User {
|
|
329
324
|
@PrimaryGeneratedColumn()
|
|
330
|
-
id
|
|
325
|
+
id!: number;
|
|
331
326
|
|
|
332
327
|
@Column({ unique: true })
|
|
333
|
-
email
|
|
328
|
+
email!: string;
|
|
334
329
|
|
|
335
330
|
@Column()
|
|
336
|
-
name
|
|
331
|
+
name!: string;
|
|
332
|
+
|
|
333
|
+
@Column()
|
|
334
|
+
password!: string;
|
|
337
335
|
|
|
338
336
|
@CreateDateColumn()
|
|
339
|
-
createdAt
|
|
337
|
+
createdAt?: Date;
|
|
340
338
|
}
|
|
341
339
|
`;
|
|
342
340
|
await fs.writeFile(path.join(projectPath, "src", "entities", "user.entity.ts"), content);
|
|
@@ -362,38 +360,18 @@ export class AuthController {
|
|
|
362
360
|
}
|
|
363
361
|
`;
|
|
364
362
|
const serviceContent = `import { Service } from 'fragment-ts';
|
|
365
|
-
import
|
|
366
|
-
import * as jwt from 'jsonwebtoken';
|
|
363
|
+
import { AuthModule } from 'fragment-ts';
|
|
367
364
|
|
|
368
365
|
@Service()
|
|
369
366
|
export class AuthService {
|
|
370
|
-
private readonly jwtSecret = process.env.JWT_SECRET || 'default-secret-key';
|
|
371
|
-
|
|
372
367
|
async login(email: string, password: string) {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
if (isValid) {
|
|
377
|
-
const token = jwt.sign({ userId: '1', email }, this.jwtSecret, { expiresIn: '1h' });
|
|
378
|
-
return { token };
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
throw new Error('Invalid credentials');
|
|
368
|
+
const token = AuthModule.generateToken({ userId: '1', email });
|
|
369
|
+
return { token };
|
|
382
370
|
}
|
|
383
371
|
|
|
384
372
|
async register(userData: any) {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
return { message: 'User registered successfully', email: userData.email };
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
private async hashPassword(password: string): Promise<string> {
|
|
391
|
-
const saltRounds = 10;
|
|
392
|
-
return bcrypt.hash(password, saltRounds);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
private async validatePassword(password: string, hashedPassword: string): Promise<boolean> {
|
|
396
|
-
return bcrypt.compare(password, hashedPassword);
|
|
373
|
+
const hashedPassword = await AuthModule.hashPassword(userData.password);
|
|
374
|
+
return { message: 'User registered successfully' };
|
|
397
375
|
}
|
|
398
376
|
}
|
|
399
377
|
`;
|
|
@@ -402,7 +380,8 @@ export class AuthService {
|
|
|
402
380
|
}
|
|
403
381
|
static async generateDefaultTest(projectPath) {
|
|
404
382
|
const testContent = `import { AppService } from '../services/app.service';
|
|
405
|
-
import { DIContainer } from
|
|
383
|
+
import { beforeEach, describe, DIContainer, expect, it } from "fragment-ts";
|
|
384
|
+
|
|
406
385
|
|
|
407
386
|
describe('AppService', () => {
|
|
408
387
|
let service: AppService;
|
|
@@ -421,27 +400,10 @@ describe('AppService', () => {
|
|
|
421
400
|
expect(message).toContain('Fragment');
|
|
422
401
|
});
|
|
423
402
|
});
|
|
424
|
-
`;
|
|
425
|
-
const jestConfig = `module.exports = {
|
|
426
|
-
preset: 'ts-jest',
|
|
427
|
-
testEnvironment: 'node',
|
|
428
|
-
roots: ['<rootDir>/src'],
|
|
429
|
-
transform: {
|
|
430
|
-
'^.+\\\\.tsx?$': 'ts-jest',
|
|
431
|
-
},
|
|
432
|
-
testRegex: '(/__tests__/.*|(\\\\.|/)(test|spec))\\\\.tsx?$',
|
|
433
|
-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
434
|
-
collectCoverageFrom: [
|
|
435
|
-
'src/**/*.{ts,tsx}',
|
|
436
|
-
'!src/main.ts',
|
|
437
|
-
'!src/**/*.controller.ts',
|
|
438
|
-
],
|
|
439
|
-
};
|
|
440
403
|
`;
|
|
441
404
|
const testDir = path.join(projectPath, "src", "test");
|
|
442
405
|
await fs.ensureDir(testDir);
|
|
443
406
|
await fs.writeFile(path.join(testDir, "app.spec.ts"), testContent);
|
|
444
|
-
await fs.writeFile(path.join(projectPath, "jest.config.js"), jestConfig);
|
|
445
407
|
}
|
|
446
408
|
}
|
|
447
409
|
exports.InitCommand = InitCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import * as path from "path";
|
|
|
5
5
|
import { spawn } from "child_process";
|
|
6
6
|
import { ConfigUtils } from "../../shared/config.utils";
|
|
7
7
|
import { EnvUtils } from "../../shared/env.utils";
|
|
8
|
+
import { TsConfigUtils } from "../../shared/tsconfig.utils";
|
|
8
9
|
|
|
9
10
|
export class DiagnosticsCommand {
|
|
10
11
|
static register(program: Command): void {
|
|
@@ -372,6 +373,8 @@ diagnose();
|
|
|
372
373
|
const cwd = process.cwd();
|
|
373
374
|
const hasSource = fs.existsSync(path.join(cwd, "src"));
|
|
374
375
|
const hasDist = fs.existsSync(path.join(cwd, "dist"));
|
|
376
|
+
const getOutDir = TsConfigUtils.getOutDir();
|
|
377
|
+
const getRootDir = TsConfigUtils.getRootDir();
|
|
375
378
|
|
|
376
379
|
console.log(` Name: ${packageJson.name || "N/A"}`);
|
|
377
380
|
console.log(` Version: ${packageJson.version || "N/A"}`);
|
|
@@ -379,8 +382,12 @@ diagnose();
|
|
|
379
382
|
console.log(` Platform: ${process.platform}`);
|
|
380
383
|
console.log(` Architecture: ${process.arch}`);
|
|
381
384
|
console.log(` Environment: ${EnvUtils.getEnvironmentMode()}`);
|
|
382
|
-
console.log(
|
|
383
|
-
|
|
385
|
+
console.log(
|
|
386
|
+
` Source: ${hasSource ? `✓ ${getRootDir}` : `✗ ${getRootDir}`}`,
|
|
387
|
+
);
|
|
388
|
+
console.log(
|
|
389
|
+
` Built: ${hasDist ? `✓ ${getOutDir}` : `✗ ${getOutDir}`}`,
|
|
390
|
+
);
|
|
384
391
|
console.log("");
|
|
385
392
|
}
|
|
386
393
|
|
|
@@ -132,7 +132,7 @@ export class InitCommand {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
if (config.features.includes("testing")) {
|
|
135
|
-
dirs.push("src/test");
|
|
135
|
+
dirs.push("src/test");
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
for (const dir of dirs) {
|
|
@@ -176,19 +176,14 @@ export class InitCommand {
|
|
|
176
176
|
"migrate:revert": "fragment migrate:revert",
|
|
177
177
|
},
|
|
178
178
|
dependencies: {
|
|
179
|
-
"fragment-ts": "^1.0.
|
|
179
|
+
"fragment-ts": "^1.0.39",
|
|
180
180
|
"reflect-metadata": "^0.1.13",
|
|
181
|
-
express: "^4.18.2",
|
|
182
181
|
},
|
|
183
182
|
devDependencies: {
|
|
184
183
|
typescript: "^5.3.3",
|
|
185
184
|
"@types/node": "^20.10.5",
|
|
186
|
-
"@types/express": "^4.17.21",
|
|
187
185
|
"ts-node": "^10.9.2",
|
|
188
186
|
"tsconfig-paths": "^4.2.0",
|
|
189
|
-
jest: "^29.7.0",
|
|
190
|
-
"@types/jest": "^29.5.12",
|
|
191
|
-
"ts-jest": "^29.1.2",
|
|
192
187
|
},
|
|
193
188
|
};
|
|
194
189
|
|
|
@@ -359,16 +354,19 @@ export class AppService {
|
|
|
359
354
|
@Entity()
|
|
360
355
|
export class User {
|
|
361
356
|
@PrimaryGeneratedColumn()
|
|
362
|
-
id
|
|
357
|
+
id!: number;
|
|
363
358
|
|
|
364
359
|
@Column({ unique: true })
|
|
365
|
-
email
|
|
360
|
+
email!: string;
|
|
366
361
|
|
|
367
362
|
@Column()
|
|
368
|
-
name
|
|
363
|
+
name!: string;
|
|
364
|
+
|
|
365
|
+
@Column()
|
|
366
|
+
password!: string;
|
|
369
367
|
|
|
370
368
|
@CreateDateColumn()
|
|
371
|
-
createdAt
|
|
369
|
+
createdAt?: Date;
|
|
372
370
|
}
|
|
373
371
|
`;
|
|
374
372
|
|
|
@@ -400,38 +398,18 @@ export class AuthController {
|
|
|
400
398
|
`;
|
|
401
399
|
|
|
402
400
|
const serviceContent = `import { Service } from 'fragment-ts';
|
|
403
|
-
import
|
|
404
|
-
import * as jwt from 'jsonwebtoken';
|
|
401
|
+
import { AuthModule } from 'fragment-ts';
|
|
405
402
|
|
|
406
403
|
@Service()
|
|
407
404
|
export class AuthService {
|
|
408
|
-
private readonly jwtSecret = process.env.JWT_SECRET || 'default-secret-key';
|
|
409
|
-
|
|
410
405
|
async login(email: string, password: string) {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
if (isValid) {
|
|
415
|
-
const token = jwt.sign({ userId: '1', email }, this.jwtSecret, { expiresIn: '1h' });
|
|
416
|
-
return { token };
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
throw new Error('Invalid credentials');
|
|
406
|
+
const token = AuthModule.generateToken({ userId: '1', email });
|
|
407
|
+
return { token };
|
|
420
408
|
}
|
|
421
409
|
|
|
422
410
|
async register(userData: any) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
return { message: 'User registered successfully', email: userData.email };
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
private async hashPassword(password: string): Promise<string> {
|
|
429
|
-
const saltRounds = 10;
|
|
430
|
-
return bcrypt.hash(password, saltRounds);
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
private async validatePassword(password: string, hashedPassword: string): Promise<boolean> {
|
|
434
|
-
return bcrypt.compare(password, hashedPassword);
|
|
411
|
+
const hashedPassword = await AuthModule.hashPassword(userData.password);
|
|
412
|
+
return { message: 'User registered successfully' };
|
|
435
413
|
}
|
|
436
414
|
}
|
|
437
415
|
`;
|
|
@@ -448,7 +426,8 @@ export class AuthService {
|
|
|
448
426
|
|
|
449
427
|
private static async generateDefaultTest(projectPath: string) {
|
|
450
428
|
const testContent = `import { AppService } from '../services/app.service';
|
|
451
|
-
import { DIContainer } from
|
|
429
|
+
import { beforeEach, describe, DIContainer, expect, it } from "fragment-ts";
|
|
430
|
+
|
|
452
431
|
|
|
453
432
|
describe('AppService', () => {
|
|
454
433
|
let service: AppService;
|
|
@@ -468,28 +447,9 @@ describe('AppService', () => {
|
|
|
468
447
|
});
|
|
469
448
|
});
|
|
470
449
|
`;
|
|
471
|
-
|
|
472
|
-
const jestConfig = `module.exports = {
|
|
473
|
-
preset: 'ts-jest',
|
|
474
|
-
testEnvironment: 'node',
|
|
475
|
-
roots: ['<rootDir>/src'],
|
|
476
|
-
transform: {
|
|
477
|
-
'^.+\\\\.tsx?$': 'ts-jest',
|
|
478
|
-
},
|
|
479
|
-
testRegex: '(/__tests__/.*|(\\\\.|/)(test|spec))\\\\.tsx?$',
|
|
480
|
-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
481
|
-
collectCoverageFrom: [
|
|
482
|
-
'src/**/*.{ts,tsx}',
|
|
483
|
-
'!src/main.ts',
|
|
484
|
-
'!src/**/*.controller.ts',
|
|
485
|
-
],
|
|
486
|
-
};
|
|
487
|
-
`;
|
|
488
|
-
|
|
489
450
|
const testDir = path.join(projectPath, "src", "test");
|
|
490
451
|
await fs.ensureDir(testDir);
|
|
491
452
|
|
|
492
453
|
await fs.writeFile(path.join(testDir, "app.spec.ts"), testContent);
|
|
493
|
-
await fs.writeFile(path.join(projectPath, "jest.config.js"), jestConfig);
|
|
494
454
|
}
|
|
495
455
|
}
|