bootifyjs 2.1.2 → 2.2.0
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/dist/BootifyApp.d.ts +38 -2
- package/dist/BootifyApp.d.ts.map +1 -1
- package/dist/BootifyApp.js +44 -6
- package/dist/BootifyApp.js.map +1 -1
- package/dist/cluster.d.ts +1 -0
- package/dist/cluster.d.ts.map +1 -0
- package/dist/cluster.js +35 -0
- package/dist/cluster.js.map +1 -0
- package/dist/core/decorators.d.ts +18 -4
- package/dist/core/decorators.d.ts.map +1 -1
- package/dist/core/decorators.js +25 -4
- package/dist/core/decorators.js.map +1 -1
- package/dist/core/router.d.ts +15 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/router.js +66 -14
- package/dist/core/router.js.map +1 -1
- package/dist/examples/controllers/test-swagger.controller.d.ts +15 -0
- package/dist/examples/controllers/test-swagger.controller.d.ts.map +1 -0
- package/dist/examples/controllers/test-swagger.controller.js +68 -0
- package/dist/examples/controllers/test-swagger.controller.js.map +1 -0
- package/dist/examples/controllers/todo.controller.d.ts.map +1 -1
- package/dist/examples/controllers/todo.controller.js +11 -5
- package/dist/examples/controllers/todo.controller.js.map +1 -1
- package/dist/examples/index.d.ts.map +1 -1
- package/dist/examples/index.js +13 -16
- package/dist/examples/index.js.map +1 -1
- package/package.json +7 -1
package/dist/BootifyApp.d.ts
CHANGED
|
@@ -8,6 +8,16 @@ export type PluginRegistrationFn = (app: FastifyInstance) => Promise<void> | voi
|
|
|
8
8
|
export type ErrorHandlerFn = (error: Error, request: FastifyRequest, reply: FastifyReply) => Promise<void> | void;
|
|
9
9
|
export type LifecycleHookFn = (app: FastifyInstance) => Promise<void> | void;
|
|
10
10
|
export type LoggerConfigFn = (builder: LoggerBuilder) => LoggerBuilder;
|
|
11
|
+
/**
|
|
12
|
+
* Options for registering controllers
|
|
13
|
+
*/
|
|
14
|
+
export interface ControllerRegistrationOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Prefix to prepend to all routes in this controller group
|
|
17
|
+
* @example { prefix: '/api/v1' }
|
|
18
|
+
*/
|
|
19
|
+
prefix?: string;
|
|
20
|
+
}
|
|
11
21
|
export declare class BootifyApp {
|
|
12
22
|
private app;
|
|
13
23
|
private logger;
|
|
@@ -15,7 +25,8 @@ export declare class BootifyApp {
|
|
|
15
25
|
private scheduler?;
|
|
16
26
|
private port;
|
|
17
27
|
private hostname;
|
|
18
|
-
private
|
|
28
|
+
private basePrefix;
|
|
29
|
+
private controllerGroups;
|
|
19
30
|
private plugins;
|
|
20
31
|
private beforeStartHooks;
|
|
21
32
|
private afterStartHooks;
|
|
@@ -32,7 +43,32 @@ export declare class BootifyApp {
|
|
|
32
43
|
*/
|
|
33
44
|
setServiceName(name: string): this;
|
|
34
45
|
useConfig(schema: ZodObject<any>): this;
|
|
35
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Set global base prefix for all routes
|
|
48
|
+
* This prefix will be prepended to all controller routes
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* createBootify()
|
|
52
|
+
* .setBasePrefix('/api/v1')
|
|
53
|
+
* .useControllers([UserController]) // Routes will be /api/v1/users/...
|
|
54
|
+
*/
|
|
55
|
+
setBasePrefix(prefix: string): this;
|
|
56
|
+
/**
|
|
57
|
+
* Register controllers with optional group prefix
|
|
58
|
+
* The final route URL is: basePrefix + groupPrefix + controllerPrefix + methodPath
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* // Without prefix
|
|
62
|
+
* .useControllers([UserController])
|
|
63
|
+
*
|
|
64
|
+
* // With group prefix
|
|
65
|
+
* .useControllers([UserController, ProductController], { prefix: '/api/v1' })
|
|
66
|
+
*
|
|
67
|
+
* // Multiple groups with different prefixes
|
|
68
|
+
* .useControllers([PublicController])
|
|
69
|
+
* .useControllers([AdminController], { prefix: '/admin' })
|
|
70
|
+
*/
|
|
71
|
+
useControllers(controllers: Constructor[], options?: ControllerRegistrationOptions): this;
|
|
36
72
|
usePlugin(plugin: PluginRegistrationFn): this;
|
|
37
73
|
useMiddleware(middleware: FastifyMiddleware): this;
|
|
38
74
|
useMiddlewares(middlewares: FastifyMiddleware[]): this;
|
package/dist/BootifyApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootifyApp.d.ts","sourceRoot":"","sources":["../src/BootifyApp.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAa,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAEH,OAAO,EACP,aAAa,EAGb,sBAAsB,EACzB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AACjF,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AACjH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAA;AAEtE,qBAAa,UAAU;IACnB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"BootifyApp.d.ts","sourceRoot":"","sources":["../src/BootifyApp.ts"],"names":[],"mappings":"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"}
|
package/dist/BootifyApp.js
CHANGED
|
@@ -16,7 +16,8 @@ class BootifyApp {
|
|
|
16
16
|
constructor() {
|
|
17
17
|
this.port = constants_1.DEFAULT_SERVER_PORT;
|
|
18
18
|
this.hostname = constants_1.DEFAULT_SERVER_HOST;
|
|
19
|
-
this.
|
|
19
|
+
this.basePrefix = '';
|
|
20
|
+
this.controllerGroups = [];
|
|
20
21
|
this.plugins = [];
|
|
21
22
|
this.beforeStartHooks = [];
|
|
22
23
|
this.afterStartHooks = [];
|
|
@@ -50,8 +51,39 @@ class BootifyApp {
|
|
|
50
51
|
AppConfig_1.AppConfig.initialize(schema);
|
|
51
52
|
return this;
|
|
52
53
|
}
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Set global base prefix for all routes
|
|
56
|
+
* This prefix will be prepended to all controller routes
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* createBootify()
|
|
60
|
+
* .setBasePrefix('/api/v1')
|
|
61
|
+
* .useControllers([UserController]) // Routes will be /api/v1/users/...
|
|
62
|
+
*/
|
|
63
|
+
setBasePrefix(prefix) {
|
|
64
|
+
this.basePrefix = (0, router_1.normalizePrefix)(prefix);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register controllers with optional group prefix
|
|
69
|
+
* The final route URL is: basePrefix + groupPrefix + controllerPrefix + methodPath
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* // Without prefix
|
|
73
|
+
* .useControllers([UserController])
|
|
74
|
+
*
|
|
75
|
+
* // With group prefix
|
|
76
|
+
* .useControllers([UserController, ProductController], { prefix: '/api/v1' })
|
|
77
|
+
*
|
|
78
|
+
* // Multiple groups with different prefixes
|
|
79
|
+
* .useControllers([PublicController])
|
|
80
|
+
* .useControllers([AdminController], { prefix: '/admin' })
|
|
81
|
+
*/
|
|
82
|
+
useControllers(controllers, options) {
|
|
83
|
+
this.controllerGroups.push({
|
|
84
|
+
controllers,
|
|
85
|
+
prefix: (0, router_1.normalizePrefix)(options?.prefix || '')
|
|
86
|
+
});
|
|
55
87
|
return this;
|
|
56
88
|
}
|
|
57
89
|
usePlugin(plugin) {
|
|
@@ -122,10 +154,16 @@ class BootifyApp {
|
|
|
122
154
|
for (const plugin of this.plugins) {
|
|
123
155
|
await plugin(this.app);
|
|
124
156
|
}
|
|
125
|
-
|
|
157
|
+
// Register each controller group with its combined prefix
|
|
158
|
+
const totalControllers = this.controllerGroups.reduce((sum, g) => sum + g.controllers.length, 0);
|
|
159
|
+
if (totalControllers > 0) {
|
|
126
160
|
this.startupLogger.logPhaseStart('Registering Controllers');
|
|
127
|
-
this.startupLogger.logComponentStart('Controllers', `${
|
|
128
|
-
|
|
161
|
+
this.startupLogger.logComponentStart('Controllers', `${totalControllers} found`);
|
|
162
|
+
for (const group of this.controllerGroups) {
|
|
163
|
+
// Combine basePrefix + groupPrefix
|
|
164
|
+
const combinedPrefix = (0, router_1.normalizePrefix)(this.basePrefix + group.prefix);
|
|
165
|
+
(0, router_1.registerControllers)(this.app, group.controllers, combinedPrefix);
|
|
166
|
+
}
|
|
129
167
|
this.startupLogger.logComponentComplete();
|
|
130
168
|
}
|
|
131
169
|
if (this.customErrorHandler) {
|
package/dist/BootifyApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootifyApp.js","sourceRoot":"","sources":["../src/BootifyApp.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"BootifyApp.js","sourceRoot":"","sources":["../src/BootifyApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=cluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":""}
|
package/dist/cluster.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// /**
|
|
3
|
+
// * Cluster mode entry point for multi-core CPU utilization
|
|
4
|
+
// *
|
|
5
|
+
// * This file forks multiple workers based on available CPU cores.
|
|
6
|
+
// * Each worker runs the main server independently.
|
|
7
|
+
// *
|
|
8
|
+
// * Usage:
|
|
9
|
+
// * bun build --compile --outfile server src/cluster.ts
|
|
10
|
+
// * ./server
|
|
11
|
+
// */
|
|
12
|
+
// import cluster from 'node:cluster'
|
|
13
|
+
// import os from 'node:os'
|
|
14
|
+
// import process from 'node:process'
|
|
15
|
+
// if (cluster.isPrimary) {
|
|
16
|
+
// const numCPUs = os.availableParallelism?.() || os.cpus().length
|
|
17
|
+
// console.log(`Primary ${process.pid} is running`)
|
|
18
|
+
// console.log(`Forking ${numCPUs} workers...`)
|
|
19
|
+
// // Fork workers
|
|
20
|
+
// for (let i = 0; i < numCPUs; i++) {
|
|
21
|
+
// cluster.fork()
|
|
22
|
+
// }
|
|
23
|
+
// cluster.on('exit', (worker, code, signal) => {
|
|
24
|
+
// console.log(`Worker ${worker.process.pid} died (${signal || code}). Restarting...`)
|
|
25
|
+
// cluster.fork()
|
|
26
|
+
// })
|
|
27
|
+
// cluster.on('online', (worker) => {
|
|
28
|
+
// console.log(`Worker ${worker.process.pid} is online`)
|
|
29
|
+
// })
|
|
30
|
+
// } else {
|
|
31
|
+
// // Workers run the server
|
|
32
|
+
// await import('./examples/index')
|
|
33
|
+
// console.log(`Worker ${process.pid} started`)
|
|
34
|
+
// }
|
|
35
|
+
//# sourceMappingURL=cluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":";AAAA,MAAM;AACN,6DAA6D;AAC7D,MAAM;AACN,oEAAoE;AACpE,qDAAqD;AACrD,MAAM;AACN,YAAY;AACZ,2DAA2D;AAC3D,gBAAgB;AAChB,MAAM;AACN,qCAAqC;AACrC,2BAA2B;AAC3B,qCAAqC;AAErC,2BAA2B;AAC3B,sEAAsE;AAEtE,uDAAuD;AACvD,mDAAmD;AAEnD,sBAAsB;AACtB,0CAA0C;AAC1C,yBAAyB;AACzB,QAAQ;AAER,qDAAqD;AACrD,8FAA8F;AAC9F,yBAAyB;AACzB,SAAS;AAET,yCAAyC;AACzC,gEAAgE;AAChE,SAAS;AACT,WAAW;AACX,gCAAgC;AAChC,uCAAuC;AACvC,mDAAmD;AACnD,IAAI"}
|
|
@@ -49,22 +49,36 @@ export interface SwaggerOptions {
|
|
|
49
49
|
security?: Array<Record<string, string[]>>;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* Decorator to add Swagger/OpenAPI documentation metadata to a route.
|
|
53
|
-
*
|
|
52
|
+
* Decorator to add Swagger/OpenAPI documentation metadata to a controller class or route method.
|
|
53
|
+
*
|
|
54
|
+
* When used on a controller class, the metadata applies to all routes in that controller.
|
|
55
|
+
* When used on a method, it overrides/merges with controller-level metadata.
|
|
54
56
|
*
|
|
55
57
|
* @example
|
|
58
|
+
* // Controller-level (applies to all routes)
|
|
59
|
+
* @Controller('/users')
|
|
60
|
+
* @Swagger({
|
|
61
|
+
* tags: ['Users'],
|
|
62
|
+
* security: [{ bearerAuth: [] }]
|
|
63
|
+
* })
|
|
64
|
+
* export class UserController {
|
|
65
|
+
* @Get('/:id') // Inherits tags and security
|
|
66
|
+
* getUserById() {}
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* // Method-level (overrides controller)
|
|
56
70
|
* @Get('/users/:id')
|
|
57
71
|
* @Swagger({
|
|
58
72
|
* summary: 'Get user by ID',
|
|
59
73
|
* description: 'Retrieves a single user by their unique identifier',
|
|
60
|
-
* tags: ['Users'],
|
|
74
|
+
* tags: ['Users', 'Public'], // Merges with controller tags
|
|
61
75
|
* deprecated: false
|
|
62
76
|
* })
|
|
63
77
|
* getUserById(@Param('id') id: string) {
|
|
64
78
|
* // ...
|
|
65
79
|
* }
|
|
66
80
|
*/
|
|
67
|
-
export declare const Swagger: (options: SwaggerOptions) => MethodDecorator;
|
|
81
|
+
export declare const Swagger: (options: SwaggerOptions) => ClassDecorator & MethodDecorator;
|
|
68
82
|
export declare const UseMiddleware: (...middlewares: FastifyMiddleware[]) => MethodDecorator & ClassDecorator;
|
|
69
83
|
export declare const Autowired: (token?: any) => any;
|
|
70
84
|
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAA;AAGnE,eAAO,MAAM,aAAa;;;;;;;;;CASzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAUzB,eAAO,MAAM,SAAS,GAAI,UAAS,gBAAqB,KAAG,cAuB1D,CAAA;AACD,eAAO,MAAM,OAAO,GAAI,UAAS,gBAAqB,KAAG,cAAoC,CAAA;AAG7F,eAAO,MAAM,UAAU,GAAI,UAAS,gBAAqB,KAAG,cAAoC,CAAA;AAEhG,eAAO,MAAM,UAAU,GACpB,SAAQ,MAAW,KAAG,cAIpB,CAAA;AAmBL,eAAO,MAAM,GAAG,UAZL,MAAM,KAAS,eAYoB,CAAA;AAC9C,eAAO,MAAM,IAAI,UAbN,MAAM,KAAS,eAasB,CAAA;AAChD,eAAO,MAAM,GAAG,UAdL,MAAM,KAAS,eAcoB,CAAA;AAC9C,eAAO,MAAM,MAAM,UAfR,MAAM,KAAS,eAe0B,CAAA;AACpD,eAAO,MAAM,KAAK,UAhBP,MAAM,KAAS,eAgBwB,CAAA;AAWlD,eAAO,MAAM,IAAI,iBANJ,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAMhB,CAAA;AACtD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,cAPtB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAOK,CAAA;AAC3E,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,cARrB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAQI,CAAA;AAC1E,eAAO,MAAM,GAAG,iBATH,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SASd,CAAA;AACxD,eAAO,MAAM,GAAG,iBAVH,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAUhB,CAAA;AAEtD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;KACrC,CAAA;CACF;AASD,eAAO,MAAM,MAAM,WANO,0BAA0B,KAAG,eAMzB,CAAA;AAI9B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;CAC3C;AAED
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAA;AAGnE,eAAO,MAAM,aAAa;;;;;;;;;CASzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAUzB,eAAO,MAAM,SAAS,GAAI,UAAS,gBAAqB,KAAG,cAuB1D,CAAA;AACD,eAAO,MAAM,OAAO,GAAI,UAAS,gBAAqB,KAAG,cAAoC,CAAA;AAG7F,eAAO,MAAM,UAAU,GAAI,UAAS,gBAAqB,KAAG,cAAoC,CAAA;AAEhG,eAAO,MAAM,UAAU,GACpB,SAAQ,MAAW,KAAG,cAIpB,CAAA;AAmBL,eAAO,MAAM,GAAG,UAZL,MAAM,KAAS,eAYoB,CAAA;AAC9C,eAAO,MAAM,IAAI,UAbN,MAAM,KAAS,eAasB,CAAA;AAChD,eAAO,MAAM,GAAG,UAdL,MAAM,KAAS,eAcoB,CAAA;AAC9C,eAAO,MAAM,MAAM,UAfR,MAAM,KAAS,eAe0B,CAAA;AACpD,eAAO,MAAM,KAAK,UAhBP,MAAM,KAAS,eAgBwB,CAAA;AAWlD,eAAO,MAAM,IAAI,iBANJ,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAMhB,CAAA;AACtD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,cAPtB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAOK,CAAA;AAC3E,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,cARrB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAQI,CAAA;AAC1E,eAAO,MAAM,GAAG,iBATH,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SASd,CAAA;AACxD,eAAO,MAAM,GAAG,iBAVH,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAUhB,CAAA;AAEtD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;KACrC,CAAA;CACF;AASD,eAAO,MAAM,MAAM,WANO,0BAA0B,KAAG,eAMzB,CAAA;AAI9B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,cAAc,KAAG,cAAc,GAAG,eAUlE,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,GAAG,aAAa,iBAAiB,EAAE,KAClC,eAAe,GAAG,cAWpB,CAAA;AA0DD,eAAO,MAAM,SAAS,GAAI,QAAQ,GAAG,KAAG,GAoCvC,CAAA"}
|
package/dist/core/decorators.js
CHANGED
|
@@ -94,15 +94,29 @@ const Validate = (schema) => {
|
|
|
94
94
|
};
|
|
95
95
|
exports.Schema = Validate;
|
|
96
96
|
/**
|
|
97
|
-
* Decorator to add Swagger/OpenAPI documentation metadata to a route.
|
|
98
|
-
*
|
|
97
|
+
* Decorator to add Swagger/OpenAPI documentation metadata to a controller class or route method.
|
|
98
|
+
*
|
|
99
|
+
* When used on a controller class, the metadata applies to all routes in that controller.
|
|
100
|
+
* When used on a method, it overrides/merges with controller-level metadata.
|
|
99
101
|
*
|
|
100
102
|
* @example
|
|
103
|
+
* // Controller-level (applies to all routes)
|
|
104
|
+
* @Controller('/users')
|
|
105
|
+
* @Swagger({
|
|
106
|
+
* tags: ['Users'],
|
|
107
|
+
* security: [{ bearerAuth: [] }]
|
|
108
|
+
* })
|
|
109
|
+
* export class UserController {
|
|
110
|
+
* @Get('/:id') // Inherits tags and security
|
|
111
|
+
* getUserById() {}
|
|
112
|
+
* }
|
|
113
|
+
*
|
|
114
|
+
* // Method-level (overrides controller)
|
|
101
115
|
* @Get('/users/:id')
|
|
102
116
|
* @Swagger({
|
|
103
117
|
* summary: 'Get user by ID',
|
|
104
118
|
* description: 'Retrieves a single user by their unique identifier',
|
|
105
|
-
* tags: ['Users'],
|
|
119
|
+
* tags: ['Users', 'Public'], // Merges with controller tags
|
|
106
120
|
* deprecated: false
|
|
107
121
|
* })
|
|
108
122
|
* getUserById(@Param('id') id: string) {
|
|
@@ -111,7 +125,14 @@ exports.Schema = Validate;
|
|
|
111
125
|
*/
|
|
112
126
|
const Swagger = (options) => {
|
|
113
127
|
return (target, propertyKey) => {
|
|
114
|
-
|
|
128
|
+
if (propertyKey) {
|
|
129
|
+
// Method decorator
|
|
130
|
+
Reflect.defineMetadata(exports.METADATA_KEYS.swaggerMetadata, options, target, propertyKey);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Class decorator
|
|
134
|
+
Reflect.defineMetadata(exports.METADATA_KEYS.swaggerMetadata, options, target);
|
|
135
|
+
}
|
|
115
136
|
};
|
|
116
137
|
};
|
|
117
138
|
exports.Swagger = Swagger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/core/router.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { FastifyInstance } from 'fastify';
|
|
2
2
|
import { Constructor } from './di-container';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Normalize a URL prefix - ensures it starts with / and doesn't end with /
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizePrefix(prefix: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Join multiple path segments into a single URL path
|
|
9
|
+
*/
|
|
10
|
+
export declare function joinPaths(...paths: string[]): string;
|
|
11
|
+
/**
|
|
12
|
+
* Register controllers with Fastify
|
|
13
|
+
* @param fastify - Fastify instance
|
|
14
|
+
* @param controllers - Array of controller classes
|
|
15
|
+
* @param groupPrefix - Optional prefix to prepend to all routes in this group
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerControllers(fastify: FastifyInstance, controllers: Constructor[], groupPrefix?: string): void;
|
|
4
18
|
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA8C,MAAM,SAAS,CAAA;AAGrF,OAAO,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA8C,MAAM,SAAS,CAAA;AAGrF,OAAO,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAA;AAEvD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAMpD;AAiDD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,WAAW,EAAE,EAC1B,WAAW,GAAE,MAAW,QAwGzB"}
|
package/dist/core/router.js
CHANGED
|
@@ -1,16 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizePrefix = normalizePrefix;
|
|
4
|
+
exports.joinPaths = joinPaths;
|
|
3
5
|
exports.registerControllers = registerControllers;
|
|
4
6
|
const zod_to_json_schema_1 = require("zod-to-json-schema");
|
|
5
7
|
const decorators_1 = require("./decorators");
|
|
6
8
|
const di_container_1 = require("./di-container");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Normalize a URL prefix - ensures it starts with / and doesn't end with /
|
|
11
|
+
*/
|
|
12
|
+
function normalizePrefix(prefix) {
|
|
13
|
+
if (!prefix)
|
|
14
|
+
return '';
|
|
15
|
+
let normalized = prefix.startsWith('/') ? prefix : `/${prefix}`;
|
|
16
|
+
return normalized.endsWith('/') ? normalized.slice(0, -1) : normalized;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Join multiple path segments into a single URL path
|
|
20
|
+
*/
|
|
21
|
+
function joinPaths(...paths) {
|
|
22
|
+
const joined = paths
|
|
23
|
+
.filter(Boolean)
|
|
24
|
+
.join('/')
|
|
25
|
+
.replace(/\/+/g, '/');
|
|
26
|
+
return joined || '/';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Merge controller-level and method-level Swagger metadata
|
|
30
|
+
* Method-level takes precedence, except for tags which are merged (unique values)
|
|
31
|
+
*
|
|
32
|
+
* @param controllerMeta - Swagger metadata from controller class
|
|
33
|
+
* @param methodMeta - Swagger metadata from method
|
|
34
|
+
* @returns Merged metadata with method overrides and tag merging
|
|
35
|
+
*/
|
|
36
|
+
function mergeSwaggerMetadata(controllerMeta, methodMeta) {
|
|
37
|
+
if (!controllerMeta)
|
|
38
|
+
return methodMeta || {};
|
|
39
|
+
if (!methodMeta)
|
|
40
|
+
return controllerMeta;
|
|
41
|
+
// Merge tags (unique values)
|
|
42
|
+
const controllerTags = controllerMeta.tags || [];
|
|
43
|
+
const methodTags = methodMeta.tags || [];
|
|
44
|
+
const mergedTags = [...controllerTags, ...methodTags];
|
|
45
|
+
const uniqueTags = [...new Set(mergedTags)];
|
|
46
|
+
return {
|
|
47
|
+
// Controller defaults
|
|
48
|
+
...controllerMeta,
|
|
49
|
+
// Method overrides
|
|
50
|
+
...methodMeta,
|
|
51
|
+
// Special: merge tags (only if there are any tags)
|
|
52
|
+
tags: uniqueTags.length > 0 ? uniqueTags : undefined,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
14
55
|
function buildFastifySchema(options) {
|
|
15
56
|
const schema = {};
|
|
16
57
|
if (options.body)
|
|
@@ -27,14 +68,23 @@ function buildFastifySchema(options) {
|
|
|
27
68
|
}
|
|
28
69
|
return schema;
|
|
29
70
|
}
|
|
30
|
-
|
|
31
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Register controllers with Fastify
|
|
73
|
+
* @param fastify - Fastify instance
|
|
74
|
+
* @param controllers - Array of controller classes
|
|
75
|
+
* @param groupPrefix - Optional prefix to prepend to all routes in this group
|
|
76
|
+
*/
|
|
77
|
+
function registerControllers(fastify, controllers, groupPrefix = '') {
|
|
78
|
+
const prefixDisplay = groupPrefix ? ` (prefix: ${groupPrefix})` : '';
|
|
79
|
+
console.log(`📋 Registering controllers${prefixDisplay}...`);
|
|
32
80
|
controllers.forEach((controllerClass) => {
|
|
33
81
|
// 👇 Read controller-level middleware
|
|
34
82
|
const classMiddlewares = Reflect.getMetadata(decorators_1.METADATA_KEYS.middleware, controllerClass) || [];
|
|
35
83
|
const controllerInstance = di_container_1.container.resolve(controllerClass);
|
|
36
84
|
const prefix = Reflect.getMetadata(decorators_1.METADATA_KEYS.controllerPrefix, controllerClass) || '';
|
|
37
85
|
const routes = Reflect.getMetadata(decorators_1.METADATA_KEYS.routes, controllerClass) || [];
|
|
86
|
+
// 🆕 Read controller-level Swagger metadata
|
|
87
|
+
const controllerSwaggerMeta = Reflect.getMetadata(decorators_1.METADATA_KEYS.swaggerMetadata, controllerClass);
|
|
38
88
|
routes.forEach((route) => {
|
|
39
89
|
// 👇 Read method-level middleware
|
|
40
90
|
const methodMiddlewares = Reflect.getMetadata(decorators_1.METADATA_KEYS.middleware, controllerInstance, route.handlerName) || [];
|
|
@@ -42,13 +92,15 @@ function registerControllers(fastify, controllers) {
|
|
|
42
92
|
const handler = controllerInstance[route.handlerName].bind(controllerInstance);
|
|
43
93
|
const paramDecorators = Reflect.getMetadata(decorators_1.METADATA_KEYS.paramTypes, controllerInstance, route.handlerName) || [];
|
|
44
94
|
const validationSchemas = Reflect.getMetadata(decorators_1.METADATA_KEYS.validationSchema, controllerInstance, route.handlerName);
|
|
45
|
-
//
|
|
46
|
-
const url =
|
|
47
|
-
//
|
|
48
|
-
const
|
|
95
|
+
// Calculate final URL: groupPrefix + controllerPrefix + methodPath
|
|
96
|
+
const url = joinPaths(groupPrefix, prefix, route.path);
|
|
97
|
+
// 🆕 Read method-level Swagger metadata
|
|
98
|
+
const methodSwaggerMeta = Reflect.getMetadata(decorators_1.METADATA_KEYS.swaggerMetadata, controllerInstance, route.handlerName);
|
|
99
|
+
// 🆕 Merge controller and method Swagger metadata
|
|
100
|
+
const swaggerMetadata = mergeSwaggerMetadata(controllerSwaggerMeta, methodSwaggerMeta);
|
|
49
101
|
// Build the schema, merging validation schemas with swagger metadata
|
|
50
102
|
let schema = validationSchemas ? buildFastifySchema(validationSchemas) : {};
|
|
51
|
-
if (swaggerMetadata) {
|
|
103
|
+
if (swaggerMetadata && Object.keys(swaggerMetadata).length > 0) {
|
|
52
104
|
schema = {
|
|
53
105
|
...schema,
|
|
54
106
|
summary: swaggerMetadata.summary,
|
package/dist/core/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test controller to demonstrate controller-level Swagger metadata inheritance
|
|
3
|
+
*/
|
|
4
|
+
export declare class TestSwaggerController {
|
|
5
|
+
inheritFromController(): {
|
|
6
|
+
message: string;
|
|
7
|
+
};
|
|
8
|
+
overrideControllerMetadata(): {
|
|
9
|
+
message: string;
|
|
10
|
+
};
|
|
11
|
+
mergeTagsExample(): {
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=test-swagger.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-swagger.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/controllers/test-swagger.controller.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAMa,qBAAqB;IAI9B,qBAAqB;;;IAUrB,0BAA0B;;;IAU1B,gBAAgB;;;CAGnB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TestSwaggerController = void 0;
|
|
13
|
+
const decorators_1 = require("../../core/decorators");
|
|
14
|
+
/**
|
|
15
|
+
* Test controller to demonstrate controller-level Swagger metadata inheritance
|
|
16
|
+
*/
|
|
17
|
+
let TestSwaggerController = class TestSwaggerController {
|
|
18
|
+
// This method inherits: tags=['Test'], security=[{apiKey:[]}], description
|
|
19
|
+
inheritFromController() {
|
|
20
|
+
return { message: 'Inherits controller metadata' };
|
|
21
|
+
}
|
|
22
|
+
overrideControllerMetadata() {
|
|
23
|
+
return { message: 'Overrides security, merges tags' };
|
|
24
|
+
}
|
|
25
|
+
mergeTagsExample() {
|
|
26
|
+
return { message: 'Demonstrates tag merging' };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.TestSwaggerController = TestSwaggerController;
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, decorators_1.Get)('/inherit')
|
|
32
|
+
// This method inherits: tags=['Test'], security=[{apiKey:[]}], description
|
|
33
|
+
,
|
|
34
|
+
__metadata("design:type", Function),
|
|
35
|
+
__metadata("design:paramtypes", []),
|
|
36
|
+
__metadata("design:returntype", void 0)
|
|
37
|
+
], TestSwaggerController.prototype, "inheritFromController", null);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, decorators_1.Get)('/override'),
|
|
40
|
+
(0, decorators_1.Swagger)({
|
|
41
|
+
summary: 'Override example',
|
|
42
|
+
tags: ['Test', 'Override'] // Merges: ['Test', 'Override']
|
|
43
|
+
// security: [] // Temporarily commented out
|
|
44
|
+
}),
|
|
45
|
+
__metadata("design:type", Function),
|
|
46
|
+
__metadata("design:paramtypes", []),
|
|
47
|
+
__metadata("design:returntype", void 0)
|
|
48
|
+
], TestSwaggerController.prototype, "overrideControllerMetadata", null);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, decorators_1.Post)('/merge-tags'),
|
|
51
|
+
(0, decorators_1.Swagger)({
|
|
52
|
+
summary: 'Tag merging example',
|
|
53
|
+
tags: ['Custom', 'API'], // Final tags: ['Test', 'Custom', 'API']
|
|
54
|
+
deprecated: true
|
|
55
|
+
}),
|
|
56
|
+
__metadata("design:type", Function),
|
|
57
|
+
__metadata("design:paramtypes", []),
|
|
58
|
+
__metadata("design:returntype", void 0)
|
|
59
|
+
], TestSwaggerController.prototype, "mergeTagsExample", null);
|
|
60
|
+
exports.TestSwaggerController = TestSwaggerController = __decorate([
|
|
61
|
+
(0, decorators_1.Controller)('/test-swagger'),
|
|
62
|
+
(0, decorators_1.Swagger)({
|
|
63
|
+
tags: ['Test'],
|
|
64
|
+
description: 'Test endpoints for Swagger metadata inheritance'
|
|
65
|
+
// security: [{ apiKey: [] }] // Temporarily commented out
|
|
66
|
+
})
|
|
67
|
+
], TestSwaggerController);
|
|
68
|
+
//# sourceMappingURL=test-swagger.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-swagger.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/test-swagger.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAsE;AAEtE;;GAEG;AAOI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAI9B,AADA,2EAA2E;IAC3E,qBAAqB;QACjB,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAA;IACtD,CAAC;IAQD,0BAA0B;QACtB,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAA;IACzD,CAAC;IAQD,gBAAgB;QACZ,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAA;IAClD,CAAC;CACJ,CAAA;AA3BY,sDAAqB;AAI9B;IAFC,IAAA,gBAAG,EAAC,UAAU,CAAC;IAChB,2EAA2E;;;;;kEAG1E;AAQD;IANC,IAAA,gBAAG,EAAC,WAAW,CAAC;IAChB,IAAA,oBAAO,EAAC;QACL,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAE,+BAA+B;QAC3D,6CAA6C;KAChD,CAAC;;;;uEAGD;AAQD;IANC,IAAA,iBAAI,EAAC,aAAa,CAAC;IACnB,IAAA,oBAAO,EAAC;QACL,OAAO,EAAE,qBAAqB;QAC9B,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAG,wCAAwC;QAClE,UAAU,EAAE,IAAI;KACnB,CAAC;;;;6DAGD;gCA1BQ,qBAAqB;IANjC,IAAA,uBAAU,EAAC,eAAe,CAAC;IAC3B,IAAA,oBAAO,EAAC;QACL,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,iDAAiD;QAC9D,2DAA2D;KAC9D,CAAC;GACW,qBAAqB,CA2BjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAUtD,QAAA,MAAM,UAAU;;;;;;EAIH,CAAA;AAUb,
|
|
1
|
+
{"version":3,"file":"todo.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAUtD,QAAA,MAAM,UAAU;;;;;;EAIH,CAAA;AAUb,qBAQa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAGrD,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,MAAM,CAAU;IASxB,WAAW;;;;;IAqBX,WAAW,CAAc,EAAE,EAAE,MAAM;;;;;IA2B7B,UAAU,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC;;;;;CAc1D"}
|
|
@@ -87,8 +87,9 @@ __decorate([
|
|
|
87
87
|
(0, decorators_2.Get)('/'),
|
|
88
88
|
(0, decorators_2.Swagger)({
|
|
89
89
|
summary: 'Get all todos',
|
|
90
|
-
description: 'Retrieves a list of all todo items'
|
|
91
|
-
tags: ['Todos']
|
|
90
|
+
description: 'Retrieves a list of all todo items'
|
|
91
|
+
// tags inherited from controller: ['Todos']
|
|
92
|
+
// security inherited from controller: [{ bearerAuth: [] }]
|
|
92
93
|
}),
|
|
93
94
|
__metadata("design:type", Function),
|
|
94
95
|
__metadata("design:paramtypes", []),
|
|
@@ -100,7 +101,7 @@ __decorate([
|
|
|
100
101
|
(0, decorators_2.Swagger)({
|
|
101
102
|
summary: 'Get todo by ID',
|
|
102
103
|
description: 'Retrieves a single todo item by its unique identifier',
|
|
103
|
-
tags: ['Todos'],
|
|
104
|
+
tags: ['Todos', 'Public'] // Merges with controller tags: ['Todos', 'Public']
|
|
104
105
|
}),
|
|
105
106
|
__param(0, (0, decorators_2.Param)('id')),
|
|
106
107
|
__metadata("design:type", Function),
|
|
@@ -126,8 +127,8 @@ __decorate([
|
|
|
126
127
|
(0, decorators_2.Swagger)({
|
|
127
128
|
summary: 'Create a new todo',
|
|
128
129
|
description: 'Creates a new todo item with the provided text',
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
operationId: 'createTodo'
|
|
131
|
+
// security: [] // Temporarily commented out
|
|
131
132
|
})
|
|
132
133
|
// @UseMiddleware(authorize(['manager']))
|
|
133
134
|
,
|
|
@@ -141,6 +142,11 @@ exports.TodoController = TodoController = __decorate([
|
|
|
141
142
|
(0, decorators_2.Controller)('/todos')
|
|
142
143
|
// @UseMiddleware(authenticate(process.env.JWT_SECRET || 'your-secret-key'))
|
|
143
144
|
,
|
|
145
|
+
(0, decorators_2.Swagger)({
|
|
146
|
+
tags: ['Todos'],
|
|
147
|
+
description: 'Todo management endpoints'
|
|
148
|
+
// security: [{ bearerAuth: [] }] // Temporarily commented out
|
|
149
|
+
}),
|
|
144
150
|
__metadata("design:paramtypes", [todo_service_1.TodoService])
|
|
145
151
|
], TodoController);
|
|
146
152
|
//# sourceMappingURL=todo.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6BAAuB;AACvB,qCAAwC;AACxC,uDAAkD;AAClD,sDAS8B;AAC9B,0DAAmD;AACnD,gFAA0E;AAC1E,8DAA+D;AAE/D,wEAAmE;AACnE,2DAAsD;AAEtD,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,OAAC;SACJ,MAAM,CAAC;QACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;KAChD,CAAC;SACD,QAAQ,EAAE;CACd,CAAA;AAED,MAAM,UAAU,GAAG,OAAC;KACjB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;CAChD,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC;KAC7D,CAAC;CACH,CAAA;
|
|
1
|
+
{"version":3,"file":"todo.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAe1B,OAAO,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAe1B,OAAO,mCAAmC,CAAC;AAE3C,OAAO,oCAAoC,CAAC;AAG5C,OAAO,2BAA2B,CAAC"}
|
package/dist/examples/index.js
CHANGED
|
@@ -49,10 +49,10 @@ const todo_controller_1 = require("./controllers/todo.controller");
|
|
|
49
49
|
dotenv_1.default.config();
|
|
50
50
|
// Import the RedisCacheStore to trigger @Service decorator registration
|
|
51
51
|
require("../cache/stores/redis-cache.store");
|
|
52
|
-
const middleware_1 = require("../middleware");
|
|
53
52
|
// Import scheduled tasks service to register it with DI
|
|
54
53
|
require("./services/scheduled-tasks.service");
|
|
55
54
|
// Import event handlers to register them with DI (must be after events to avoid circular deps)
|
|
55
|
+
const test_swagger_controller_1 = require("./controllers/test-swagger.controller");
|
|
56
56
|
require("./events/TodoEventHandler");
|
|
57
57
|
// --- Application Startup ---
|
|
58
58
|
const envSchema = zod_1.default.object({
|
|
@@ -118,18 +118,13 @@ async function main() {
|
|
|
118
118
|
.useConfig(envSchema)
|
|
119
119
|
.setPort(8080)
|
|
120
120
|
.setServiceName("bootify-example")
|
|
121
|
-
// Configure logger -
|
|
122
|
-
|
|
123
|
-
.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
129
|
-
serviceName: 'bootify-example',
|
|
130
|
-
prettyPrint: process.env.NODE_ENV !== 'production',
|
|
131
|
-
}));
|
|
132
|
-
})
|
|
121
|
+
// Configure logger - using built-in console logger (no external dependencies)
|
|
122
|
+
.useLogger(builder => builder
|
|
123
|
+
.setLevel(process.env.LOG_LEVEL || 'info')
|
|
124
|
+
.configureConsole({
|
|
125
|
+
colorize: process.env.NODE_ENV !== 'production',
|
|
126
|
+
prettyPrint: process.env.NODE_ENV !== 'production',
|
|
127
|
+
}))
|
|
133
128
|
// Initialize services before start
|
|
134
129
|
.beforeStart(async () => {
|
|
135
130
|
const log = (0, logging_1.getLogger)();
|
|
@@ -147,7 +142,7 @@ async function main() {
|
|
|
147
142
|
})
|
|
148
143
|
// Register Swagger
|
|
149
144
|
.usePlugin(async (app) => {
|
|
150
|
-
app.addHook("onRequest",
|
|
145
|
+
// app.addHook("onRequest", createContextMiddleware());
|
|
151
146
|
const fastifySwagger = await Promise.resolve().then(() => __importStar(require("@fastify/swagger")));
|
|
152
147
|
const fastifySwaggerUI = await Promise.resolve().then(() => __importStar(require("@fastify/swagger-ui")));
|
|
153
148
|
await app.register(fastifySwagger.default, {
|
|
@@ -164,8 +159,10 @@ async function main() {
|
|
|
164
159
|
routePrefix: "/api-docs",
|
|
165
160
|
});
|
|
166
161
|
})
|
|
167
|
-
// Register controllers
|
|
168
|
-
|
|
162
|
+
// Register controllers with API prefix
|
|
163
|
+
// Health controller at root, Todo controller under /api/v1
|
|
164
|
+
.useControllers([health_controller_1.HealthController]) // /health
|
|
165
|
+
.useControllers([todo_controller_1.TodoController, test_swagger_controller_1.TestSwaggerController], { prefix: '/api/v1' }) // /api/v1/todos, /api/v1/test-swagger
|
|
169
166
|
// Register JWT auth routes after app is built
|
|
170
167
|
.beforeStart(async (app) => {
|
|
171
168
|
(0, basic_usage_1.registerJWTAuthRoutes)(app, authManager, jwtAuthMiddleware);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,4BAA0B;AAC1B,8CAAoB;AACpB,8DAGsC;AACtC,8CAA8C;AAC9C,oCAA0C;AAE1C,uDAAiD;AACjD,wCAAgD;AAChD,uEAAmE;AACnE,mEAA+D;AAC/D,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,wEAAwE;AACxE,6CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bootifyjs",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": "Piyush Priyadarshi",
|
|
6
6
|
"license": "ISC",
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"clean": "rm -rf dist",
|
|
12
12
|
"build": "npm run clean && tsc",
|
|
13
|
+
"build:binary": "bun build --compile --minify-whitespace --minify-syntax --target bun --outfile server src/examples/index.ts",
|
|
14
|
+
"build:binary:cluster": "bun build --compile --minify-whitespace --minify-syntax --target bun --outfile server src/cluster.ts",
|
|
15
|
+
"build:binary:linux": "bun build --compile --minify-whitespace --minify-syntax --target bun-linux-x64 --outfile server src/examples/index.ts",
|
|
16
|
+
"docker:build": "docker build -t bootifyjs .",
|
|
17
|
+
"docker:build:cluster": "docker build -t bootifyjs:cluster -f Dockerfile.cluster .",
|
|
18
|
+
"docker:run": "docker run -p 8080:8080 --env-file .env bootifyjs",
|
|
13
19
|
"prepublishOnly": "npm run build",
|
|
14
20
|
"dev": "nodemon --watch src --exec ts-node src/examples/index.ts"
|
|
15
21
|
},
|