bootifyjs 1.4.0 → 2.0.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.
Files changed (125) hide show
  1. package/dist/BootifyApp.d.ts +48 -0
  2. package/dist/BootifyApp.d.ts.map +1 -0
  3. package/dist/BootifyApp.js +153 -0
  4. package/dist/BootifyApp.js.map +1 -0
  5. package/dist/api.d.ts +10 -3
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +54 -37
  8. package/dist/api.js.map +1 -1
  9. package/dist/core/decorators.d.ts +27 -1
  10. package/dist/core/decorators.d.ts.map +1 -1
  11. package/dist/core/decorators.js +26 -3
  12. package/dist/core/decorators.js.map +1 -1
  13. package/dist/core/router.d.ts.map +1 -1
  14. package/dist/core/router.js +17 -2
  15. package/dist/core/router.js.map +1 -1
  16. package/dist/examples/controllers/todo.controller.d.ts.map +1 -1
  17. package/dist/examples/controllers/todo.controller.js +16 -0
  18. package/dist/examples/controllers/todo.controller.js.map +1 -1
  19. package/dist/examples/enhanced-logger-example.d.ts +2 -0
  20. package/dist/examples/enhanced-logger-example.d.ts.map +1 -0
  21. package/dist/examples/enhanced-logger-example.js +143 -0
  22. package/dist/examples/enhanced-logger-example.js.map +1 -0
  23. package/dist/examples/index.d.ts +1 -0
  24. package/dist/examples/index.d.ts.map +1 -1
  25. package/dist/examples/index.js +117 -51
  26. package/dist/examples/index.js.map +1 -1
  27. package/dist/examples/scheduled-jobs-example.d.ts +10 -0
  28. package/dist/examples/scheduled-jobs-example.d.ts.map +1 -0
  29. package/dist/examples/scheduled-jobs-example.js +134 -0
  30. package/dist/examples/scheduled-jobs-example.js.map +1 -0
  31. package/dist/examples/services/scheduled-tasks.service.d.ts +17 -0
  32. package/dist/examples/services/scheduled-tasks.service.d.ts.map +1 -0
  33. package/dist/examples/services/scheduled-tasks.service.js +77 -0
  34. package/dist/examples/services/scheduled-tasks.service.js.map +1 -0
  35. package/dist/examples/services/todo.service.d.ts.map +1 -1
  36. package/dist/examples/services/todo.service.js.map +1 -1
  37. package/dist/examples/simple-scheduler-test.d.ts +6 -0
  38. package/dist/examples/simple-scheduler-test.d.ts.map +1 -0
  39. package/dist/examples/simple-scheduler-test.js +57 -0
  40. package/dist/examples/simple-scheduler-test.js.map +1 -0
  41. package/dist/examples/streaming-logger-example.d.ts +2 -0
  42. package/dist/examples/streaming-logger-example.d.ts.map +1 -0
  43. package/dist/examples/streaming-logger-example.js +124 -0
  44. package/dist/examples/streaming-logger-example.js.map +1 -0
  45. package/dist/index.d.ts +5 -3
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +5 -3
  48. package/dist/index.js.map +1 -1
  49. package/dist/logging/core/adapters/index.d.ts +2 -0
  50. package/dist/logging/core/adapters/index.d.ts.map +1 -0
  51. package/dist/logging/core/adapters/index.js +18 -0
  52. package/dist/logging/core/adapters/index.js.map +1 -0
  53. package/dist/logging/core/adapters/pino.adapter.d.ts +32 -0
  54. package/dist/logging/core/adapters/pino.adapter.d.ts.map +1 -0
  55. package/dist/logging/core/adapters/pino.adapter.js +82 -0
  56. package/dist/logging/core/adapters/pino.adapter.js.map +1 -0
  57. package/dist/logging/core/base-logger.d.ts +44 -0
  58. package/dist/logging/core/base-logger.d.ts.map +1 -0
  59. package/dist/logging/core/base-logger.js +147 -0
  60. package/dist/logging/core/base-logger.js.map +1 -0
  61. package/dist/logging/core/context-providers/index.d.ts +2 -0
  62. package/dist/logging/core/context-providers/index.d.ts.map +1 -0
  63. package/dist/logging/core/context-providers/index.js +18 -0
  64. package/dist/logging/core/context-providers/index.js.map +1 -0
  65. package/dist/logging/core/context-providers/request-context.provider.d.ts +5 -0
  66. package/dist/logging/core/context-providers/request-context.provider.d.ts.map +1 -0
  67. package/dist/logging/core/context-providers/request-context.provider.js +19 -0
  68. package/dist/logging/core/context-providers/request-context.provider.js.map +1 -0
  69. package/dist/logging/core/enhanced-startup-logger.d.ts +48 -0
  70. package/dist/logging/core/enhanced-startup-logger.d.ts.map +1 -0
  71. package/dist/logging/core/enhanced-startup-logger.js +537 -0
  72. package/dist/logging/core/enhanced-startup-logger.js.map +1 -0
  73. package/dist/logging/core/interfaces.d.ts +75 -0
  74. package/dist/logging/core/interfaces.d.ts.map +1 -0
  75. package/dist/logging/core/interfaces.js +9 -0
  76. package/dist/logging/core/interfaces.js.map +1 -0
  77. package/dist/logging/core/logger-builder.d.ts +58 -0
  78. package/dist/logging/core/logger-builder.d.ts.map +1 -0
  79. package/dist/logging/core/logger-builder.js +121 -0
  80. package/dist/logging/core/logger-builder.js.map +1 -0
  81. package/dist/logging/core/startup.logger.d.ts +1 -0
  82. package/dist/logging/core/startup.logger.d.ts.map +1 -1
  83. package/dist/logging/core/startup.logger.js +28 -3
  84. package/dist/logging/core/startup.logger.js.map +1 -1
  85. package/dist/logging/core/streaming-startup-logger.d.ts +21 -0
  86. package/dist/logging/core/streaming-startup-logger.d.ts.map +1 -0
  87. package/dist/logging/core/streaming-startup-logger.js +209 -0
  88. package/dist/logging/core/streaming-startup-logger.js.map +1 -0
  89. package/dist/logging/core/transports/console.transport.d.ts +19 -0
  90. package/dist/logging/core/transports/console.transport.d.ts.map +1 -0
  91. package/dist/logging/core/transports/console.transport.js +67 -0
  92. package/dist/logging/core/transports/console.transport.js.map +1 -0
  93. package/dist/logging/core/transports/index.d.ts +2 -0
  94. package/dist/logging/core/transports/index.d.ts.map +1 -0
  95. package/dist/logging/core/transports/index.js +18 -0
  96. package/dist/logging/core/transports/index.js.map +1 -0
  97. package/dist/logging/index.d.ts +73 -2
  98. package/dist/logging/index.d.ts.map +1 -1
  99. package/dist/logging/index.js +115 -16
  100. package/dist/logging/index.js.map +1 -1
  101. package/dist/middleware/auth.middleware.d.ts +2 -2
  102. package/dist/middleware/auth.middleware.d.ts.map +1 -1
  103. package/dist/middleware/auth.middleware.js +12 -23
  104. package/dist/middleware/auth.middleware.js.map +1 -1
  105. package/dist/middleware/index.d.ts +1 -2
  106. package/dist/middleware/index.d.ts.map +1 -1
  107. package/dist/middleware/index.js +0 -1
  108. package/dist/middleware/index.js.map +1 -1
  109. package/dist/scheduling/index.d.ts +25 -0
  110. package/dist/scheduling/index.d.ts.map +1 -0
  111. package/dist/scheduling/index.js +41 -0
  112. package/dist/scheduling/index.js.map +1 -0
  113. package/dist/scheduling/scheduled.decorator.d.ts +25 -0
  114. package/dist/scheduling/scheduled.decorator.d.ts.map +1 -0
  115. package/dist/scheduling/scheduled.decorator.js +52 -0
  116. package/dist/scheduling/scheduled.decorator.js.map +1 -0
  117. package/dist/scheduling/scheduler.service.d.ts +39 -0
  118. package/dist/scheduling/scheduler.service.d.ts.map +1 -0
  119. package/dist/scheduling/scheduler.service.js +341 -0
  120. package/dist/scheduling/scheduler.service.js.map +1 -0
  121. package/dist/scheduling/scheduler.types.d.ts +47 -0
  122. package/dist/scheduling/scheduler.types.d.ts.map +1 -0
  123. package/dist/scheduling/scheduler.types.js +6 -0
  124. package/dist/scheduling/scheduler.types.js.map +1 -0
  125. package/package.json +16 -1
@@ -0,0 +1,48 @@
1
+ import { FastifyInstance, FastifyReply, FastifyRequest, FastifyServerOptions } from 'fastify';
2
+ import { ZodObject } from 'zod';
3
+ import { FastifyMiddleware } from './core/decorators';
4
+ import { Constructor } from './core/di-container';
5
+ import { Logger } from './logging/core/logger';
6
+ import { StreamingStartupLogger } from './logging/core/streaming-startup-logger';
7
+ import { SchedulerService } from './scheduling/scheduler.service';
8
+ export type PluginRegistrationFn = (app: FastifyInstance) => Promise<void> | void;
9
+ export type ErrorHandlerFn = (error: Error, request: FastifyRequest, reply: FastifyReply) => Promise<void> | void;
10
+ export type LifecycleHookFn = (app: FastifyInstance) => Promise<void> | void;
11
+ export declare class BootifyApp {
12
+ private app;
13
+ private logger;
14
+ private startupLogger;
15
+ private scheduler?;
16
+ private port;
17
+ private hostname;
18
+ private controllers;
19
+ private plugins;
20
+ private beforeStartHooks;
21
+ private afterStartHooks;
22
+ private customErrorHandler?;
23
+ private enableScheduler;
24
+ private fastifyOptions;
25
+ setFastifyOptions(options: FastifyServerOptions): this;
26
+ setPort(port: number): this;
27
+ setHostname(hostname: string): this;
28
+ useConfig(schema: ZodObject<any>): this;
29
+ useControllers(controllers: Constructor[]): this;
30
+ usePlugin(plugin: PluginRegistrationFn): this;
31
+ useMiddleware(middleware: FastifyMiddleware): this;
32
+ useMiddlewares(middlewares: FastifyMiddleware[]): this;
33
+ useErrorHandler(handler: ErrorHandlerFn): this;
34
+ beforeStart(hook: LifecycleHookFn): this;
35
+ afterStart(hook: LifecycleHookFn): this;
36
+ useScheduler(enabled?: boolean): this;
37
+ build(): Promise<{
38
+ app: FastifyInstance;
39
+ start: () => Promise<void>;
40
+ logger: Logger;
41
+ startupLogger: StreamingStartupLogger;
42
+ scheduler?: SchedulerService;
43
+ }>;
44
+ start(): Promise<void>;
45
+ private setupGracefulShutdown;
46
+ }
47
+ export declare function createBootify(): BootifyApp;
48
+ //# sourceMappingURL=BootifyApp.d.ts.map
@@ -0,0 +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;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,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;AAE5E,qBAAa,UAAU;IACnB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,cAAc,CAGrB;IAED,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAKtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAKvC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI;IAKhD,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAK7C,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAOlD,cAAc,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAKtD,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAK9C,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAKxC,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAKvC,YAAY,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAMrC,KAAK,IAAI,OAAO,CAAC;QACnB,GAAG,EAAE,eAAe,CAAA;QACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,sBAAsB,CAAA;QACrC,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAC/B,CAAC;IAiEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,OAAO,CAAC,qBAAqB;CAgBhC;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BootifyApp = void 0;
7
+ exports.createBootify = createBootify;
8
+ const fastify_1 = __importDefault(require("fastify"));
9
+ const AppConfig_1 = require("./config/AppConfig");
10
+ const constants_1 = require("./constants");
11
+ const di_container_1 = require("./core/di-container");
12
+ const router_1 = require("./core/router");
13
+ const logging_1 = require("./logging");
14
+ const scheduler_service_1 = require("./scheduling/scheduler.service");
15
+ class BootifyApp {
16
+ constructor() {
17
+ this.port = constants_1.DEFAULT_SERVER_PORT;
18
+ this.hostname = constants_1.DEFAULT_SERVER_HOST;
19
+ this.controllers = [];
20
+ this.plugins = [];
21
+ this.beforeStartHooks = [];
22
+ this.afterStartHooks = [];
23
+ this.enableScheduler = true;
24
+ this.fastifyOptions = {
25
+ logger: false,
26
+ ignoreTrailingSlash: true,
27
+ };
28
+ }
29
+ setFastifyOptions(options) {
30
+ this.fastifyOptions = { ...this.fastifyOptions, ...options };
31
+ return this;
32
+ }
33
+ setPort(port) {
34
+ this.port = port;
35
+ return this;
36
+ }
37
+ setHostname(hostname) {
38
+ this.hostname = hostname;
39
+ return this;
40
+ }
41
+ useConfig(schema) {
42
+ AppConfig_1.AppConfig.initialize(schema);
43
+ return this;
44
+ }
45
+ useControllers(controllers) {
46
+ this.controllers.push(...controllers);
47
+ return this;
48
+ }
49
+ usePlugin(plugin) {
50
+ this.plugins.push(plugin);
51
+ return this;
52
+ }
53
+ useMiddleware(middleware) {
54
+ this.plugins.push(async (app) => {
55
+ app.addHook('onRequest', middleware);
56
+ });
57
+ return this;
58
+ }
59
+ useMiddlewares(middlewares) {
60
+ middlewares.forEach((middleware) => this.useMiddleware(middleware));
61
+ return this;
62
+ }
63
+ useErrorHandler(handler) {
64
+ this.customErrorHandler = handler;
65
+ return this;
66
+ }
67
+ beforeStart(hook) {
68
+ this.beforeStartHooks.push(hook);
69
+ return this;
70
+ }
71
+ afterStart(hook) {
72
+ this.afterStartHooks.push(hook);
73
+ return this;
74
+ }
75
+ useScheduler(enabled = true) {
76
+ this.enableScheduler = enabled;
77
+ return this;
78
+ }
79
+ async build() {
80
+ const { logger, startupLogger } = await (0, logging_1.initializeStreamingLogging)();
81
+ this.logger = logger;
82
+ this.startupLogger = startupLogger;
83
+ startupLogger.logStartupBanner();
84
+ this.app = (0, fastify_1.default)(this.fastifyOptions);
85
+ for (const plugin of this.plugins) {
86
+ await plugin(this.app);
87
+ }
88
+ if (this.controllers.length > 0) {
89
+ startupLogger.logPhaseStart('Registering Controllers');
90
+ startupLogger.logComponentStart('Controllers', `${this.controllers.length} found`);
91
+ (0, router_1.registerControllers)(this.app, this.controllers);
92
+ startupLogger.logComponentComplete();
93
+ }
94
+ if (this.customErrorHandler) {
95
+ this.app.setErrorHandler(this.customErrorHandler);
96
+ }
97
+ startupLogger.logStartupComplete();
98
+ if (this.enableScheduler) {
99
+ this.scheduler = di_container_1.container.resolve(scheduler_service_1.SchedulerService);
100
+ }
101
+ const start = async () => {
102
+ try {
103
+ for (const hook of this.beforeStartHooks) {
104
+ await hook(this.app);
105
+ }
106
+ if (this.enableScheduler && this.scheduler) {
107
+ startupLogger.logComponentStart('Scheduler', 'Starting scheduled jobs');
108
+ await this.scheduler.start();
109
+ startupLogger.logComponentComplete();
110
+ }
111
+ await this.app.listen({ port: this.port, host: this.hostname });
112
+ startupLogger.logStartupSummary(this.port, this.hostname);
113
+ for (const hook of this.afterStartHooks) {
114
+ await hook(this.app);
115
+ }
116
+ this.setupGracefulShutdown();
117
+ }
118
+ catch (err) {
119
+ this.app.log.error(err);
120
+ process.exit(1);
121
+ }
122
+ };
123
+ return {
124
+ app: this.app,
125
+ start,
126
+ logger: this.logger,
127
+ startupLogger: this.startupLogger,
128
+ scheduler: this.scheduler,
129
+ };
130
+ }
131
+ async start() {
132
+ const { start } = await this.build();
133
+ await start();
134
+ }
135
+ setupGracefulShutdown() {
136
+ const shutdown = async (signal) => {
137
+ console.log(`\n[BootifyApp] Received ${signal}, shutting down gracefully...`);
138
+ if (this.scheduler) {
139
+ await this.scheduler.stop();
140
+ }
141
+ await this.app.close();
142
+ console.log('[BootifyApp] Shutdown complete');
143
+ process.exit(0);
144
+ };
145
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
146
+ process.on('SIGINT', () => shutdown('SIGINT'));
147
+ }
148
+ }
149
+ exports.BootifyApp = BootifyApp;
150
+ function createBootify() {
151
+ return new BootifyApp();
152
+ }
153
+ //# sourceMappingURL=BootifyApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BootifyApp.js","sourceRoot":"","sources":["../src/BootifyApp.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { FastifyInstance } from 'fastify';
1
+ import { FastifyInstance, FastifyServerOptions } from 'fastify';
2
2
  import { ZodObject } from 'zod';
3
3
  import { FastifyMiddleware } from './core/decorators';
4
4
  import { Constructor } from './core/di-container';
5
5
  import { ContextExtractor } from './middleware/context.middleware';
6
6
  export interface BootifyAppOptions {
7
- controllers: Constructor[];
7
+ controllers?: Constructor[];
8
8
  port?: number;
9
9
  hostname?: string;
10
10
  enableSwagger?: boolean;
@@ -13,9 +13,16 @@ export interface BootifyAppOptions {
13
13
  globalMiddlewares?: FastifyMiddleware[];
14
14
  ignoreTrailingSlash?: boolean;
15
15
  enableCookie?: boolean;
16
+ enableRequestLogger?: boolean;
17
+ enableContextMiddleware?: boolean;
18
+ enableErrorHandler?: boolean;
19
+ fastifyOptions?: FastifyServerOptions;
20
+ autoStart?: boolean;
16
21
  }
17
- export declare function createBootifyApp(options: BootifyAppOptions): Promise<{
22
+ export declare function createBootifyApp(options?: BootifyAppOptions): Promise<{
18
23
  app: FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>;
19
24
  start: () => Promise<void>;
25
+ logger: import("./logging").Logger;
26
+ startupLogger: import("./logging").StartupLoggerService;
20
27
  }>;
21
28
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAClD,OAAU,EAAY,SAAS,EAAE,MAAM,KAAK,CAAA;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAA2B,MAAM,iCAAiC,CAAA;AAM3F,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB;;;GAgHhE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACxE,OAAO,EAAY,SAAS,EAAE,MAAM,KAAK,CAAA;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAA2B,MAAM,iCAAiC,CAAA;AAM3F,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB;;;;;GAqIrE"}
package/dist/api.js CHANGED
@@ -38,25 +38,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.createBootifyApp = createBootifyApp;
40
40
  const fastify_1 = __importDefault(require("fastify"));
41
- const zod_1 = __importStar(require("zod"));
41
+ const zod_1 = require("zod");
42
42
  const AppConfig_1 = require("./config/AppConfig");
43
43
  const constants_1 = require("./constants");
44
44
  const router_1 = require("./core/router");
45
45
  const logging_1 = require("./logging");
46
46
  const context_middleware_1 = require("./middleware/context.middleware");
47
47
  const request_logger_middleware_1 = require("./middleware/request-logger.middleware");
48
- async function createBootifyApp(options) {
49
- AppConfig_1.AppConfig.initialize(options.configSchema ?? zod_1.default.object({}));
48
+ async function createBootifyApp(options = {}) {
49
+ // Initialize config if provided
50
+ if (options.configSchema) {
51
+ AppConfig_1.AppConfig.initialize(options.configSchema);
52
+ }
50
53
  const { logger, startupLogger } = await (0, logging_1.intitializeLogging)();
51
54
  startupLogger.logStartupBanner();
55
+ // Create Fastify instance with custom options
52
56
  const app = (0, fastify_1.default)({
53
57
  logger: false,
54
58
  ignoreTrailingSlash: options.ignoreTrailingSlash ?? true,
59
+ ...options.fastifyOptions,
55
60
  });
56
- // Register context middleware FIRST to establish AsyncLocalStorage context
57
- startupLogger.logComponentStart('Request Context Middleware');
58
- app.addHook('onRequest', (0, context_middleware_1.createContextMiddleware)(options.contextExtractor));
59
- startupLogger.logComponentComplete('Request Context Middleware');
61
+ // Register context middleware FIRST (if enabled)
62
+ if (options.enableContextMiddleware !== false) {
63
+ startupLogger.logComponentStart('Request Context Middleware');
64
+ app.addHook('onRequest', (0, context_middleware_1.createContextMiddleware)(options.contextExtractor));
65
+ startupLogger.logComponentComplete('Request Context Middleware');
66
+ }
60
67
  // Register cookie parsing if enabled
61
68
  if (options.enableCookie) {
62
69
  startupLogger.logComponentStart('Registering Cookie Parser');
@@ -81,32 +88,35 @@ async function createBootifyApp(options) {
81
88
  });
82
89
  startupLogger.logComponentComplete('Global Middlewares');
83
90
  }
84
- // 2. Request Logger Hooks
85
- // These log the start and end of the request.
86
- startupLogger.logComponentStart('Attaching Request Logger');
87
- app.addHook('onRequest', request_logger_middleware_1.requestLoggerOnRequest);
88
- app.addHook('onResponse', (0, request_logger_middleware_1.createRequestLoggerOnResponse)(logger));
89
- startupLogger.logComponentComplete('Attaching Request Logger');
90
- startupLogger.logComponentStart('Attaching Global ErrorHandler');
91
- app.setErrorHandler((error, request, reply) => {
92
- if (error instanceof zod_1.ZodError) {
93
- reply.status(400).send({
94
- statusCode: 400,
95
- error: 'Bad Request',
96
- message: 'Validation failed',
97
- details: error.issues,
98
- });
99
- }
100
- else if (error.statusCode) {
101
- reply.send(error);
102
- }
103
- else {
104
- // app.log.error(error)
105
- logger.error('Internal Server Error', error);
106
- reply.status(500).send({ message: 'Internal Server Error' });
107
- }
108
- });
109
- startupLogger.logComponentComplete('Attaching Global ErrorHandler');
91
+ // 2. Request Logger Hooks (if enabled)
92
+ if (options.enableRequestLogger !== false) {
93
+ startupLogger.logComponentStart('Attaching Request Logger');
94
+ app.addHook('onRequest', request_logger_middleware_1.requestLoggerOnRequest);
95
+ app.addHook('onResponse', (0, request_logger_middleware_1.createRequestLoggerOnResponse)(logger));
96
+ startupLogger.logComponentComplete('Attaching Request Logger');
97
+ }
98
+ // 3. Global Error Handler (if enabled)
99
+ if (options.enableErrorHandler !== false) {
100
+ startupLogger.logComponentStart('Attaching Global ErrorHandler');
101
+ app.setErrorHandler((error, request, reply) => {
102
+ if (error instanceof zod_1.ZodError) {
103
+ reply.status(400).send({
104
+ statusCode: 400,
105
+ error: 'Bad Request',
106
+ message: 'Validation failed',
107
+ details: error.issues,
108
+ });
109
+ }
110
+ else if (error.statusCode) {
111
+ reply.send(error);
112
+ }
113
+ else {
114
+ logger.error('Internal Server Error', error);
115
+ reply.status(500).send({ message: 'Internal Server Error' });
116
+ }
117
+ });
118
+ startupLogger.logComponentComplete('Attaching Global ErrorHandler');
119
+ }
110
120
  if (options.enableSwagger) {
111
121
  startupLogger.logComponentStart('Initializing Swagger');
112
122
  const swaggerHost = options.hostname ?? 'localhost';
@@ -128,9 +138,12 @@ async function createBootifyApp(options) {
128
138
  });
129
139
  startupLogger.logComponentComplete(' Swagger COnfiguiration Done');
130
140
  }
131
- startupLogger.logComponentStart('Registering Controllers');
132
- (0, router_1.registerControllers)(app, options.controllers);
133
- startupLogger.logComponentComplete('Registering Controllers');
141
+ // Register controllers (if provided)
142
+ if (options.controllers && options.controllers.length > 0) {
143
+ startupLogger.logComponentStart('Registering Controllers');
144
+ (0, router_1.registerControllers)(app, options.controllers);
145
+ startupLogger.logComponentComplete('Registering Controllers');
146
+ }
134
147
  startupLogger.logStartupComplete();
135
148
  const start = async () => {
136
149
  try {
@@ -144,6 +157,10 @@ async function createBootifyApp(options) {
144
157
  process.exit(1);
145
158
  }
146
159
  };
147
- return { app, start };
160
+ // Auto-start if requested
161
+ if (options.autoStart) {
162
+ await start();
163
+ }
164
+ return { app, start, logger, startupLogger };
148
165
  }
149
166
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import { FastifyReply, FastifyRequest } from 'fastify';
1
2
  import 'reflect-metadata';
2
3
  import { ZodSchema } from 'zod';
3
- import { FastifyRequest, FastifyReply } from 'fastify';
4
4
  import { ComponentOptions } from './di-container';
5
5
  export declare const METADATA_KEYS: {
6
6
  controllerPrefix: "bootify:controller-prefix";
@@ -10,6 +10,7 @@ export declare const METADATA_KEYS: {
10
10
  middleware: "bootify:middleware";
11
11
  autowiredProperties: "bootify:autowired-properties";
12
12
  autowiredParams: "bootify:autowired-params";
13
+ swaggerMetadata: string;
13
14
  };
14
15
  export type FastifyMiddleware = (request: FastifyRequest, reply: FastifyReply) => Promise<void> | void;
15
16
  export declare const Component: (options?: ComponentOptions) => ClassDecorator;
@@ -39,6 +40,31 @@ export interface ValidationDecoratorOptions {
39
40
  };
40
41
  }
41
42
  export declare const Schema: (schema: ValidationDecoratorOptions) => MethodDecorator;
43
+ export interface SwaggerOptions {
44
+ summary?: string;
45
+ description?: string;
46
+ tags?: string[];
47
+ deprecated?: boolean;
48
+ operationId?: string;
49
+ security?: Array<Record<string, string[]>>;
50
+ }
51
+ /**
52
+ * Decorator to add Swagger/OpenAPI documentation metadata to a route.
53
+ * This metadata will be merged with the schema generated from @Schema decorator.
54
+ *
55
+ * @example
56
+ * @Get('/users/:id')
57
+ * @Swagger({
58
+ * summary: 'Get user by ID',
59
+ * description: 'Retrieves a single user by their unique identifier',
60
+ * tags: ['Users'],
61
+ * deprecated: false
62
+ * })
63
+ * getUserById(@Param('id') id: string) {
64
+ * // ...
65
+ * }
66
+ */
67
+ export declare const Swagger: (options: SwaggerOptions) => MethodDecorator;
42
68
  export declare const UseMiddleware: (...middlewares: FastifyMiddleware[]) => MethodDecorator & ClassDecorator;
43
69
  export declare const Autowired: (token?: any) => any;
44
70
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAK,SAAS,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAA;AAKnE,eAAO,MAAM,aAAa;;;;;;;;CAQzB,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,cAItB,CAAA;AAmBH,eAAO,MAAM,GAAG,UAZP,MAAM,KAAS,eAYsB,CAAA;AAC9C,eAAO,MAAM,IAAI,UAbR,MAAM,KAAS,eAawB,CAAA;AAChD,eAAO,MAAM,GAAG,UAdP,MAAM,KAAS,eAcsB,CAAA;AAC9C,eAAO,MAAM,MAAM,UAfV,MAAM,KAAS,eAe4B,CAAA;AACpD,eAAO,MAAM,KAAK,UAhBT,MAAM,KAAS,eAgB0B,CAAA;AAWlD,eAAO,MAAM,IAAI,iBANN,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAMd,CAAA;AACtD,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,cAPxB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAOO,CAAA;AAC3E,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,cARvB,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAQM,CAAA;AAC1E,eAAO,MAAM,GAAG,iBATL,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SASZ,CAAA;AACxD,eAAO,MAAM,GAAG,iBAVL,GAAG,eAAe,MAAM,GAAG,MAAM,kBAAkB,MAAM,SAUd,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;AAE9B,eAAO,MAAM,aAAa,GACxB,GAAG,aAAa,iBAAiB,EAAE,KAClC,eAAe,GAAG,cAWpB,CAAA;AA0DD,eAAO,MAAM,SAAS,GAAI,QAAQ,GAAG,KAAG,GAqCvC,CAAA"}
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;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,cAAc,KAAG,eAIjD,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"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Autowired = exports.UseMiddleware = exports.Schema = exports.Res = exports.Req = exports.Param = exports.Query = exports.Body = exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = exports.Controller = exports.Repository = exports.Service = exports.Component = exports.METADATA_KEYS = void 0;
3
+ exports.Autowired = exports.UseMiddleware = exports.Swagger = exports.Schema = exports.Res = exports.Req = exports.Param = exports.Query = exports.Body = exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = exports.Controller = exports.Repository = exports.Service = exports.Component = exports.METADATA_KEYS = void 0;
4
4
  require("reflect-metadata");
5
- const di_container_1 = require("./di-container");
6
- const component_registry_1 = require("./component-registry");
7
5
  const constants_1 = require("../constants");
6
+ const component_registry_1 = require("./component-registry");
7
+ const di_container_1 = require("./di-container");
8
8
  // --- Metadata Keys ---
9
9
  exports.METADATA_KEYS = {
10
10
  controllerPrefix: constants_1.FRAMEWORK_METADATA_KEYS.CONTROLLER_PREFIX,
@@ -14,6 +14,7 @@ exports.METADATA_KEYS = {
14
14
  middleware: constants_1.FRAMEWORK_METADATA_KEYS.MIDDLEWARE,
15
15
  autowiredProperties: constants_1.FRAMEWORK_METADATA_KEYS.AUTOWIRED_PROPERTIES,
16
16
  autowiredParams: constants_1.FRAMEWORK_METADATA_KEYS.AUTOWIRED_PARAMS,
17
+ swaggerMetadata: 'swagger:metadata',
17
18
  };
18
19
  // export interface ComponentOptions {
19
20
  // scope?: Scope
@@ -92,6 +93,28 @@ const Validate = (schema) => {
92
93
  };
93
94
  };
94
95
  exports.Schema = Validate;
96
+ /**
97
+ * Decorator to add Swagger/OpenAPI documentation metadata to a route.
98
+ * This metadata will be merged with the schema generated from @Schema decorator.
99
+ *
100
+ * @example
101
+ * @Get('/users/:id')
102
+ * @Swagger({
103
+ * summary: 'Get user by ID',
104
+ * description: 'Retrieves a single user by their unique identifier',
105
+ * tags: ['Users'],
106
+ * deprecated: false
107
+ * })
108
+ * getUserById(@Param('id') id: string) {
109
+ * // ...
110
+ * }
111
+ */
112
+ const Swagger = (options) => {
113
+ return (target, propertyKey) => {
114
+ Reflect.defineMetadata(exports.METADATA_KEYS.swaggerMetadata, options, target, propertyKey);
115
+ };
116
+ };
117
+ exports.Swagger = Swagger;
95
118
  const UseMiddleware = (...middlewares) => {
96
119
  return (target, propertyKey) => {
97
120
  const key = exports.METADATA_KEYS.middleware;
@@ -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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"}
@@ -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;AAErF,OAAO,EAAa,WAAW,EAAE,MAAM,gBAAgB,CAAA;AA4BvD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,QA0EvF"}
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;AA2BvD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,QA+FvF"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerControllers = registerControllers;
4
4
  const zod_to_json_schema_1 = require("zod-to-json-schema");
5
- const di_container_1 = require("./di-container");
6
5
  const decorators_1 = require("./decorators");
6
+ const di_container_1 = require("./di-container");
7
7
  // const buildJsonSchema = (schemas: any) => {
8
8
  // const schema: any = {}
9
9
  // if (schemas.body) schema.body = zodToJsonSchema(schemas.body)
@@ -44,10 +44,25 @@ function registerControllers(fastify, controllers) {
44
44
  const validationSchemas = Reflect.getMetadata(decorators_1.METADATA_KEYS.validationSchema, controllerInstance, route.handlerName);
45
45
  // console.log(validationSchemas)
46
46
  const url = `${prefix}${route.path}`.replace(/\/+/g, '/');
47
+ // Get Swagger metadata if it exists
48
+ const swaggerMetadata = Reflect.getMetadata(decorators_1.METADATA_KEYS.swaggerMetadata, controllerInstance, route.handlerName);
49
+ // Build the schema, merging validation schemas with swagger metadata
50
+ let schema = validationSchemas ? buildFastifySchema(validationSchemas) : {};
51
+ if (swaggerMetadata) {
52
+ schema = {
53
+ ...schema,
54
+ summary: swaggerMetadata.summary,
55
+ description: swaggerMetadata.description,
56
+ tags: swaggerMetadata.tags,
57
+ deprecated: swaggerMetadata.deprecated,
58
+ operationId: swaggerMetadata.operationId,
59
+ security: swaggerMetadata.security,
60
+ };
61
+ }
47
62
  const routeOptions = {
48
63
  method: route.method,
49
64
  url,
50
- schema: validationSchemas ? buildFastifySchema(validationSchemas) : {},
65
+ schema,
51
66
  // 👇 Attach all middleware functions to the preHandler hook
52
67
  preHandler: allMiddlewares,
53
68
  handler: async (request, reply) => {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":";;AA8BA,kDA0EC;AAvGD,2DAAoD;AACpD,iDAAuD;AACvD,6CAAwE;AAExE,8CAA8C;AAC9C,2BAA2B;AAC3B,kEAAkE;AAClE,2EAA2E;AAC3E,wEAAwE;AAExE,kBAAkB;AAClB,IAAI;AAEJ,SAAS,kBAAkB,CAAC,OAAmC;IAC7D,MAAM,MAAM,GAAQ,EAAE,CAAA;IAEtB,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,WAAW,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACpB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAwB,EAAE,WAA0B;IACtF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAE5C,WAAW,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;QACtC,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,CAAA;QAC7F,MAAM,kBAAkB,GAAG,wBAAS,CAAC,OAAO,CAAC,eAAe,CAAQ,CAAA;QACpE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,CAAC,gBAAgB,EAAE,eAAe,CAAC,IAAI,EAAE,CAAA;QACzF,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,CAAA;QAE/E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YAC5B,kCAAkC;YAClC,MAAM,iBAAiB,GACrB,OAAO,CAAC,WAAW,CAAC,0BAAa,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;YAC5F,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,CAAA,CAAC,eAAe;YAElF,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAC9E,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,CAAC,0BAAa,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;YAC5F,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAC3C,0BAAa,CAAC,gBAAgB,EAC9B,kBAAkB,EAClB,KAAK,CAAC,WAAW,CAClB,CAAA;YAED,iCAAiC;YACjC,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAEzD,MAAM,YAAY,GAAiB;gBACjC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG;gBACH,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtE,4DAA4D;gBAC5D,UAAU,EAAE,cAAc;gBAC1B,OAAO,EAAE,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;oBAC9D,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;4BAC9C,IAAI,CAAC,KAAK;gCAAE,OAAO,SAAS,CAAA;4BAC5B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gCACnB,KAAK,MAAM;oCACT,OAAO,OAAO,CAAC,IAAI,CAAA;gCACrB,KAAK,OAAO;oCACV,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,KAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;gCACxE,KAAK,OAAO;oCACV,OAAQ,OAAO,CAAC,MAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gCAC5C,KAAK,SAAS;oCACZ,OAAO,OAAO,CAAA;gCAChB,KAAK,OAAO;oCACV,OAAO,KAAK,CAAA;gCACd;oCACE,OAAO,SAAS,CAAA;4BACpB,CAAC;wBACH,CAAC,CAAC,CAAA;wBAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;wBAErC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;4BAChB,OAAO,MAAM,CAAA;wBACf,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,KAAK,CAAA;oBACb,CAAC;gBACH,CAAC;aACF,CAAA;YAED,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC3B,OAAO,CAAC,GAAG,CACT,oBAAoB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,kBAC/C,cAAc,CAAC,MACjB,GAAG,CACJ,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"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"}
@@ -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;AAiBvB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAUtD,QAAA,MAAM,UAAU;;;;;;EAIH,CAAA;AAUb,qBAGa,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,CAAS;IAGvB,WAAW;;;;;IAkBX,WAAW,CAAc,EAAE,EAAE,MAAM;;;;;IAqB7B,UAAU,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC;;;;;CAc1D"}
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,qBAGa,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,CAAS;IAQvB,WAAW;;;;;IAuBX,WAAW,CAAc,EAAE,EAAE,MAAM;;;;;IA2B7B,UAAU,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC;;;;;CAc1D"}