bootifyjs 2.1.1 → 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/cache/cache.service.d.ts +1 -1
- package/dist/cache/cache.service.d.ts.map +1 -1
- package/dist/cache/cache.service.js.map +1 -1
- package/dist/cache/cache.types.d.ts +1 -0
- package/dist/cache/cache.types.d.ts.map +1 -1
- package/dist/cache/cache.types.js +9 -0
- package/dist/cache/cache.types.js.map +1 -1
- package/dist/cache/index.d.ts +1 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +3 -1
- package/dist/cache/index.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/config/AppConfig.d.ts +36 -12
- package/dist/config/AppConfig.d.ts.map +1 -1
- package/dist/config/AppConfig.js +2 -2
- package/dist/config/AppConfig.js.map +1 -1
- 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/events/todo.events.d.ts +0 -1
- package/dist/examples/events/todo.events.d.ts.map +1 -1
- package/dist/examples/events/todo.events.js +1 -1
- package/dist/examples/events/todo.events.js.map +1 -1
- package/dist/examples/index.d.ts +1 -0
- package/dist/examples/index.d.ts.map +1 -1
- package/dist/examples/index.js +15 -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,qBACa,YAAY;IACmB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAEtE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAqD;AACrD,mDAAuD;
|
|
1
|
+
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAqD;AACrD,mDAAuD;AAEvD,+CAAiD;AAG1C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAA2D,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAI,CAAC;IAE3E,GAAG,CAAI,GAAW;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,YAAqB;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACjD,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,oBAAO,GAAE,CAAC,oCAAoC;;IAEhC,WAAA,IAAA,sBAAS,EAAC,+BAAiB,CAAC,CAAA;;GAD9B,YAAY,CAcxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.types.d.ts","sourceRoot":"","sources":["../../src/cache/cache.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA2B,CAAA;AAEzD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC"}
|
|
1
|
+
{"version":3,"file":"cache.types.d.ts","sourceRoot":"","sources":["../../src/cache/cache.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA2B,CAAA;AAEzD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAQ7D"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CACHE_STORE_TOKEN = void 0;
|
|
4
|
+
exports.isCacheStore = isCacheStore;
|
|
4
5
|
/**
|
|
5
6
|
* A unique Symbol to use as the DI token for the cache store.
|
|
6
7
|
*/
|
|
7
8
|
exports.CACHE_STORE_TOKEN = Symbol.for('CacheStore');
|
|
9
|
+
// Type guard for Bun bundler compatibility (ensures interface is not tree-shaken)
|
|
10
|
+
function isCacheStore(obj) {
|
|
11
|
+
return (typeof obj === 'object' &&
|
|
12
|
+
obj !== null &&
|
|
13
|
+
'get' in obj &&
|
|
14
|
+
'set' in obj &&
|
|
15
|
+
'del' in obj);
|
|
16
|
+
}
|
|
8
17
|
//# sourceMappingURL=cache.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.types.js","sourceRoot":"","sources":["../../src/cache/cache.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cache.types.js","sourceRoot":"","sources":["../../src/cache/cache.types.ts"],"names":[],"mappings":";;;AAgBA,oCAQC;AAxBD;;GAEG;AACU,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAYzD,kFAAkF;AAClF,SAAgB,YAAY,CAAC,GAAY;IACvC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,KAAK,IAAI,GAAG;QACZ,KAAK,IAAI,GAAG;QACZ,KAAK,IAAI,GAAG,CACb,CAAA;AACH,CAAC"}
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC9D,cAAc,cAAc,CAAA;AAG5B,cAAc,UAAU,CAAA"}
|
package/dist/cache/index.js
CHANGED
|
@@ -14,10 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.CACHE_STORE_TOKEN = void 0;
|
|
17
18
|
// Core cache functionality
|
|
18
19
|
__exportStar(require("./bootstrap"), exports);
|
|
19
|
-
__exportStar(require("./cache.types"), exports);
|
|
20
20
|
__exportStar(require("./cache.service"), exports);
|
|
21
|
+
var cache_types_1 = require("./cache.types");
|
|
22
|
+
Object.defineProperty(exports, "CACHE_STORE_TOKEN", { enumerable: true, get: function () { return cache_types_1.CACHE_STORE_TOKEN; } });
|
|
21
23
|
__exportStar(require("./decorators"), exports);
|
|
22
24
|
// Cache store implementations
|
|
23
25
|
__exportStar(require("./stores"), exports);
|
package/dist/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,8CAA2B;AAC3B,kDAA+B;AAC/B,6CAA8D;AAArD,gHAAA,iBAAiB,OAAA;AAC1B,+CAA4B;AAE5B,8BAA8B;AAC9B,2CAAwB"}
|
|
@@ -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"}
|
|
@@ -1,20 +1,44 @@
|
|
|
1
1
|
import { AnyZodObject, z, ZodObject, ZodRawShape } from 'zod';
|
|
2
|
-
declare
|
|
2
|
+
declare const FrameworkConfigSchema: z.ZodObject<{
|
|
3
3
|
NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "production", "test"]>>;
|
|
4
4
|
SERVER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
5
5
|
SERVER_HOST: z.ZodDefault<z.ZodString>;
|
|
6
6
|
CONFIG_DEBUG: z.ZodDefault<z.ZodBoolean>;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
} & {
|
|
8
|
+
LOG_LEVEL: z.ZodEffects<z.ZodDefault<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>, "trace" | "debug" | "info" | "warn" | "error" | "fatal", "trace" | "debug" | "info" | "warn" | "error" | "fatal" | undefined>;
|
|
9
|
+
SERVICE_NAME: z.ZodDefault<z.ZodString>;
|
|
10
|
+
CLICKHOUSE_ENABLED: z.ZodDefault<z.ZodEffects<z.ZodBoolean, boolean, unknown>>;
|
|
11
|
+
CLICKHOUSE_URL: z.ZodDefault<z.ZodString>;
|
|
12
|
+
CLICKHOUSE_USER: z.ZodDefault<z.ZodString>;
|
|
13
|
+
CLICKHOUSE_PASSWORD: z.ZodDefault<z.ZodString>;
|
|
14
|
+
CLICKHOUSE_DB: z.ZodDefault<z.ZodString>;
|
|
15
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
16
|
+
NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "production", "test"]>>;
|
|
17
|
+
SERVER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
18
|
+
SERVER_HOST: z.ZodDefault<z.ZodString>;
|
|
19
|
+
CONFIG_DEBUG: z.ZodDefault<z.ZodBoolean>;
|
|
20
|
+
} & {
|
|
21
|
+
LOG_LEVEL: z.ZodEffects<z.ZodDefault<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>, "trace" | "debug" | "info" | "warn" | "error" | "fatal", "trace" | "debug" | "info" | "warn" | "error" | "fatal" | undefined>;
|
|
22
|
+
SERVICE_NAME: z.ZodDefault<z.ZodString>;
|
|
23
|
+
CLICKHOUSE_ENABLED: z.ZodDefault<z.ZodEffects<z.ZodBoolean, boolean, unknown>>;
|
|
24
|
+
CLICKHOUSE_URL: z.ZodDefault<z.ZodString>;
|
|
25
|
+
CLICKHOUSE_USER: z.ZodDefault<z.ZodString>;
|
|
26
|
+
CLICKHOUSE_PASSWORD: z.ZodDefault<z.ZodString>;
|
|
27
|
+
CLICKHOUSE_DB: z.ZodDefault<z.ZodString>;
|
|
28
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
29
|
+
NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "production", "test"]>>;
|
|
30
|
+
SERVER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
31
|
+
SERVER_HOST: z.ZodDefault<z.ZodString>;
|
|
32
|
+
CONFIG_DEBUG: z.ZodDefault<z.ZodBoolean>;
|
|
33
|
+
} & {
|
|
34
|
+
LOG_LEVEL: z.ZodEffects<z.ZodDefault<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>, "trace" | "debug" | "info" | "warn" | "error" | "fatal", "trace" | "debug" | "info" | "warn" | "error" | "fatal" | undefined>;
|
|
35
|
+
SERVICE_NAME: z.ZodDefault<z.ZodString>;
|
|
36
|
+
CLICKHOUSE_ENABLED: z.ZodDefault<z.ZodEffects<z.ZodBoolean, boolean, unknown>>;
|
|
37
|
+
CLICKHOUSE_URL: z.ZodDefault<z.ZodString>;
|
|
38
|
+
CLICKHOUSE_USER: z.ZodDefault<z.ZodString>;
|
|
39
|
+
CLICKHOUSE_PASSWORD: z.ZodDefault<z.ZodString>;
|
|
40
|
+
CLICKHOUSE_DB: z.ZodDefault<z.ZodString>;
|
|
41
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
18
42
|
type FrameworkConfig = z.infer<typeof FrameworkConfigSchema>;
|
|
19
43
|
export declare class AppConfig<T extends ZodRawShape> {
|
|
20
44
|
private static instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAkC7D,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAqE,CAAA;AAEhG,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE5D,qBAAa,SAAS,CAAC,CAAC,SAAS,WAAW;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO;IAaP;;;;OAIG;WACW,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAYzF;;;OAGG;WACW,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAO/E,OAAO,CAAC,cAAc;IAoBtB;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3D,GAAG,EAAE,CAAC,GACL,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAU/C;;;OAGG;IACH,MAAM,IAAI,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAIjD;;;OAGG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,OAAO,CAAC,SAAS;CAalB"}
|
package/dist/config/AppConfig.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AppConfig = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
// Framework-level configuration schema
|
|
6
|
-
|
|
6
|
+
const BaseFrameworkConfigSchema = zod_1.z.object({
|
|
7
7
|
NODE_ENV: zod_1.z.enum(['development', 'production', 'test']).default('development'),
|
|
8
8
|
SERVER_PORT: zod_1.z.coerce.number().default(4000),
|
|
9
9
|
SERVER_HOST: zod_1.z.string().default('localhost'),
|
|
@@ -31,7 +31,7 @@ const LoggingConfigSchema = zod_1.z.object({
|
|
|
31
31
|
CLICKHOUSE_PASSWORD: zod_1.z.string().default(''),
|
|
32
32
|
CLICKHOUSE_DB: zod_1.z.string().default('default'),
|
|
33
33
|
});
|
|
34
|
-
FrameworkConfigSchema =
|
|
34
|
+
const FrameworkConfigSchema = BaseFrameworkConfigSchema.merge(LoggingConfigSchema).passthrough();
|
|
35
35
|
class AppConfig {
|
|
36
36
|
constructor(userSchema) {
|
|
37
37
|
// Merge framework and user schemas
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppConfig.js","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":";;;AAAA,6BAA6D;AAE7D,uCAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"AppConfig.js","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"todo.events.d.ts","sourceRoot":"","sources":["../../../src/examples/events/todo.events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"todo.events.d.ts","sourceRoot":"","sources":["../../../src/examples/events/todo.events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKlD,qBAAa,gBAAiB,YAAW,MAAM;IAG1B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;IAFzE,QAAQ,CAAC,IAAI,kBAAiB;gBAEX,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE;CAC1E"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TodoCreatedEvent = void 0;
|
|
4
4
|
// This is our strongly-typed event class.
|
|
5
|
-
|
|
5
|
+
// Note: TodoEventHandler is imported in the main index.ts to avoid circular dependency
|
|
6
6
|
class TodoCreatedEvent {
|
|
7
7
|
constructor(payload) {
|
|
8
8
|
this.payload = payload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo.events.js","sourceRoot":"","sources":["../../../src/examples/events/todo.events.ts"],"names":[],"mappings":";;;AAEA,0CAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"todo.events.js","sourceRoot":"","sources":["../../../src/examples/events/todo.events.ts"],"names":[],"mappings":";;;AAEA,0CAA0C;AAC1C,uFAAuF;AAEvF,MAAa,gBAAgB;IAG3B,YAAmB,OAAsD;QAAtD,YAAO,GAAP,OAAO,CAA+C;QAFhE,SAAI,GAAG,cAAc,CAAA,CAAC,0BAA0B;IAEoB,CAAC;CAC/E;AAJD,4CAIC"}
|
package/dist/examples/index.d.ts
CHANGED
|
@@ -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,9 +49,11 @@ 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");
|
|
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
|
+
require("./events/TodoEventHandler");
|
|
55
57
|
// --- Application Startup ---
|
|
56
58
|
const envSchema = zod_1.default.object({
|
|
57
59
|
NODE_ENV: zod_1.default.string().min(1),
|
|
@@ -116,18 +118,13 @@ async function main() {
|
|
|
116
118
|
.useConfig(envSchema)
|
|
117
119
|
.setPort(8080)
|
|
118
120
|
.setServiceName("bootify-example")
|
|
119
|
-
// Configure logger -
|
|
120
|
-
|
|
121
|
-
.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
127
|
-
serviceName: 'bootify-example',
|
|
128
|
-
prettyPrint: process.env.NODE_ENV !== 'production',
|
|
129
|
-
}));
|
|
130
|
-
})
|
|
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
|
+
}))
|
|
131
128
|
// Initialize services before start
|
|
132
129
|
.beforeStart(async () => {
|
|
133
130
|
const log = (0, logging_1.getLogger)();
|
|
@@ -145,7 +142,7 @@ async function main() {
|
|
|
145
142
|
})
|
|
146
143
|
// Register Swagger
|
|
147
144
|
.usePlugin(async (app) => {
|
|
148
|
-
app.addHook("onRequest",
|
|
145
|
+
// app.addHook("onRequest", createContextMiddleware());
|
|
149
146
|
const fastifySwagger = await Promise.resolve().then(() => __importStar(require("@fastify/swagger")));
|
|
150
147
|
const fastifySwaggerUI = await Promise.resolve().then(() => __importStar(require("@fastify/swagger-ui")));
|
|
151
148
|
await app.register(fastifySwagger.default, {
|
|
@@ -162,8 +159,10 @@ async function main() {
|
|
|
162
159
|
routePrefix: "/api-docs",
|
|
163
160
|
});
|
|
164
161
|
})
|
|
165
|
-
// Register controllers
|
|
166
|
-
|
|
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
|
|
167
166
|
// Register JWT auth routes after app is built
|
|
168
167
|
.beforeStart(async (app) => {
|
|
169
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
|
},
|