bootifyjs 0.1.0 → 1.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.
- package/dist/api.d.ts +8 -27
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +68 -134
- package/dist/api.js.map +1 -1
- package/dist/cache/bootstrap.d.ts +6 -0
- package/dist/cache/bootstrap.d.ts.map +1 -0
- package/dist/cache/bootstrap.js +23 -0
- package/dist/cache/bootstrap.js.map +1 -0
- package/dist/cache/cache.service.d.ts +9 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/cache.service.js +40 -0
- package/dist/cache/cache.service.js.map +1 -0
- package/dist/cache/cache.types.d.ts +14 -0
- package/dist/cache/cache.types.d.ts.map +1 -0
- package/dist/cache/cache.types.js +8 -0
- package/dist/cache/cache.types.js.map +1 -0
- package/dist/cache/decorators.d.ts +12 -0
- package/dist/cache/decorators.d.ts.map +1 -0
- package/dist/cache/decorators.js +53 -0
- package/dist/cache/decorators.js.map +1 -0
- package/dist/cache/in-memory-cache.store.d.ts +8 -0
- package/dist/cache/in-memory-cache.store.d.ts.map +1 -0
- package/dist/cache/in-memory-cache.store.js +39 -0
- package/dist/cache/in-memory-cache.store.js.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/core/component-registry.d.ts +7 -0
- package/dist/core/component-registry.d.ts.map +1 -0
- package/dist/core/component-registry.js +9 -0
- package/dist/core/component-registry.js.map +1 -0
- package/dist/core/decorators.d.ts +38 -22
- package/dist/core/decorators.d.ts.map +1 -0
- package/dist/core/decorators.js +155 -174
- package/dist/core/decorators.js.map +1 -1
- package/dist/core/di-container.d.ts +31 -0
- package/dist/core/di-container.d.ts.map +1 -0
- package/dist/core/di-container.js +219 -0
- package/dist/core/di-container.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/request-context.service.d.ts +24 -0
- package/dist/core/request-context.service.d.ts.map +1 -0
- package/dist/core/request-context.service.js +52 -0
- package/dist/core/request-context.service.js.map +1 -0
- package/dist/core/router.d.ts +4 -32
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +81 -258
- package/dist/core/router.js.map +1 -1
- package/dist/events/bootstrap.d.ts +8 -0
- package/dist/events/bootstrap.d.ts.map +1 -0
- package/dist/events/bootstrap.js +37 -0
- package/dist/events/bootstrap.js.map +1 -0
- package/dist/events/decorators.d.ts +16 -0
- package/dist/events/decorators.d.ts.map +1 -0
- package/dist/events/decorators.js +37 -0
- package/dist/events/decorators.js.map +1 -0
- package/dist/events/event-bus.service.d.ts +21 -0
- package/dist/events/event-bus.service.d.ts.map +1 -0
- package/dist/events/event-bus.service.js +78 -0
- package/dist/events/event-bus.service.js.map +1 -0
- package/dist/events/event.types.d.ts +17 -0
- package/dist/events/event.types.d.ts.map +1 -0
- package/dist/events/event.types.js.map +1 -0
- package/dist/events/index.d.ts +5 -13
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +4 -54
- package/dist/events/index.js.map +1 -1
- package/dist/examples/controllers/health.controller.d.ts +7 -0
- package/dist/examples/controllers/health.controller.d.ts.map +1 -0
- package/dist/{events/examples/system.events.js → examples/controllers/health.controller.js} +16 -15
- package/dist/examples/controllers/health.controller.js.map +1 -0
- package/dist/examples/controllers/todo.controller.d.ts +31 -0
- package/dist/examples/controllers/todo.controller.d.ts.map +1 -0
- package/dist/examples/controllers/todo.controller.js +102 -0
- package/dist/examples/controllers/todo.controller.js.map +1 -0
- package/dist/examples/events/TodoEventHandler.d.ts +2 -0
- package/dist/examples/events/TodoEventHandler.d.ts.map +1 -0
- package/dist/examples/events/TodoEventHandler.js +31 -0
- package/dist/examples/events/TodoEventHandler.js.map +1 -0
- package/dist/examples/events/todo.events.d.ts +16 -0
- package/dist/examples/events/todo.events.d.ts.map +1 -0
- package/dist/examples/events/todo.events.js +13 -0
- package/dist/examples/events/todo.events.js.map +1 -0
- package/dist/examples/index.d.ts +2 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/dist/examples/index.js +35 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/examples/repositories/todo.repository.d.ts +20 -0
- package/dist/examples/repositories/todo.repository.d.ts.map +1 -0
- package/dist/examples/repositories/todo.repository.js +33 -0
- package/dist/examples/repositories/todo.repository.js.map +1 -0
- package/dist/examples/services/todo.service.d.ts +33 -0
- package/dist/examples/services/todo.service.d.ts.map +1 -0
- package/dist/examples/services/todo.service.js +80 -0
- package/dist/examples/services/todo.service.js.map +1 -0
- package/dist/examples/todos/schema.d.ts +54 -0
- package/dist/examples/todos/schema.d.ts.map +1 -0
- package/dist/examples/todos/schema.js +20 -0
- package/dist/examples/todos/schema.js.map +1 -0
- package/dist/index.d.ts +7 -17
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -95
- package/dist/index.js.map +1 -1
- package/dist/logging/config/logging.config.d.ts +31 -3
- package/dist/logging/config/logging.config.d.ts.map +1 -0
- package/dist/logging/config/logging.config.js +43 -93
- package/dist/logging/config/logging.config.js.map +1 -1
- package/dist/logging/core/decorators.d.ts +16 -0
- package/dist/logging/core/decorators.d.ts.map +1 -0
- package/dist/logging/core/decorators.js +74 -0
- package/dist/logging/core/decorators.js.map +1 -0
- package/dist/logging/core/logger.provider.d.ts +4 -0
- package/dist/logging/core/logger.provider.d.ts.map +1 -0
- package/dist/logging/core/logger.provider.js +68 -0
- package/dist/logging/core/logger.provider.js.map +1 -0
- package/dist/logging/core/logger.service.d.ts +9 -27
- package/dist/logging/core/logger.service.d.ts.map +1 -0
- package/dist/logging/core/logger.service.js +34 -164
- package/dist/logging/core/logger.service.js.map +1 -1
- package/dist/logging/core/{startup-logger.service.d.ts → startup.logger.d.ts} +4 -6
- package/dist/logging/core/startup.logger.d.ts.map +1 -0
- package/dist/logging/core/{startup-logger.service.js → startup.logger.js} +36 -42
- package/dist/logging/core/startup.logger.js.map +1 -0
- package/dist/logging/index.d.ts +7 -14
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +17 -28
- package/dist/logging/index.js.map +1 -1
- package/dist/middleware/auth.middleware.d.ts +3 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +18 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/middleware/context.middleware.d.ts +7 -0
- package/dist/middleware/context.middleware.d.ts.map +1 -0
- package/dist/middleware/context.middleware.js +25 -0
- package/dist/middleware/context.middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +20 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/request-logger.middleware.d.ts +4 -0
- package/dist/middleware/request-logger.middleware.d.ts.map +1 -0
- package/dist/middleware/request-logger.middleware.js +18 -0
- package/dist/middleware/request-logger.middleware.js.map +1 -0
- package/package.json +52 -47
- package/LICENSE +0 -21
- package/README.md +0 -173
- package/dist/config/app.config.d.ts +0 -29
- package/dist/config/app.config.js +0 -55
- package/dist/config/app.config.js.map +0 -1
- package/dist/controllers/config.controller.d.ts +0 -16
- package/dist/controllers/config.controller.js +0 -66
- package/dist/controllers/config.controller.js.map +0 -1
- package/dist/controllers/events.controller.d.ts +0 -66
- package/dist/controllers/events.controller.js +0 -145
- package/dist/controllers/events.controller.js.map +0 -1
- package/dist/controllers/health.controller.d.ts +0 -20
- package/dist/controllers/health.controller.js +0 -92
- package/dist/controllers/health.controller.js.map +0 -1
- package/dist/controllers/user.controller.d.ts +0 -13
- package/dist/controllers/user.controller.js +0 -209
- package/dist/controllers/user.controller.js.map +0 -1
- package/dist/core/application.d.ts +0 -21
- package/dist/core/application.js +0 -90
- package/dist/core/application.js.map +0 -1
- package/dist/core/config.d.ts +0 -3
- package/dist/core/config.js +0 -78
- package/dist/core/config.js.map +0 -1
- package/dist/core/container.d.ts +0 -17
- package/dist/core/container.js +0 -92
- package/dist/core/container.js.map +0 -1
- package/dist/core/errors.d.ts +0 -18
- package/dist/core/errors.js +0 -74
- package/dist/core/errors.js.map +0 -1
- package/dist/core/middleware.d.ts +0 -8
- package/dist/core/middleware.js +0 -23
- package/dist/core/middleware.js.map +0 -1
- package/dist/core/openapi.d.ts +0 -80
- package/dist/core/openapi.js +0 -189
- package/dist/core/openapi.js.map +0 -1
- package/dist/core/utils.d.ts +0 -7
- package/dist/core/utils.js +0 -75
- package/dist/core/utils.js.map +0 -1
- package/dist/core/validation.d.ts +0 -15
- package/dist/core/validation.js +0 -161
- package/dist/core/validation.js.map +0 -1
- package/dist/events/core/event-bus.d.ts +0 -26
- package/dist/events/core/event-bus.js +0 -253
- package/dist/events/core/event-bus.js.map +0 -1
- package/dist/events/core/event-registry.d.ts +0 -31
- package/dist/events/core/event-registry.js +0 -170
- package/dist/events/core/event-registry.js.map +0 -1
- package/dist/events/decorators/event.decorators.d.ts +0 -11
- package/dist/events/decorators/event.decorators.js +0 -123
- package/dist/events/decorators/event.decorators.js.map +0 -1
- package/dist/events/examples/system.events.d.ts +0 -15
- package/dist/events/examples/system.events.js.map +0 -1
- package/dist/events/examples/user.events.d.ts +0 -68
- package/dist/events/examples/user.events.js +0 -73
- package/dist/events/examples/user.events.js.map +0 -1
- package/dist/events/examples/user.handlers.d.ts +0 -20
- package/dist/events/examples/user.handlers.js +0 -157
- package/dist/events/examples/user.handlers.js.map +0 -1
- package/dist/events/middleware/logging.middleware.d.ts +0 -7
- package/dist/events/middleware/logging.middleware.js +0 -44
- package/dist/events/middleware/logging.middleware.js.map +0 -1
- package/dist/events/middleware/metrics.middleware.d.ts +0 -11
- package/dist/events/middleware/metrics.middleware.js +0 -87
- package/dist/events/middleware/metrics.middleware.js.map +0 -1
- package/dist/events/middleware/validation.middleware.d.ts +0 -8
- package/dist/events/middleware/validation.middleware.js +0 -63
- package/dist/events/middleware/validation.middleware.js.map +0 -1
- package/dist/events/store/memory-event-store.d.ts +0 -21
- package/dist/events/store/memory-event-store.js +0 -81
- package/dist/events/store/memory-event-store.js.map +0 -1
- package/dist/events/types/event.types.d.ts +0 -57
- package/dist/events/types/event.types.js.map +0 -1
- package/dist/examples/basic-api.d.ts +0 -1
- package/dist/examples/basic-api.js +0 -120
- package/dist/examples/basic-api.js.map +0 -1
- package/dist/logging/core/log-context.service.d.ts +0 -11
- package/dist/logging/core/log-context.service.js +0 -40
- package/dist/logging/core/log-context.service.js.map +0 -1
- package/dist/logging/core/startup-logger.service.js.map +0 -1
- package/dist/logging/decorators/log.decorator.d.ts +0 -11
- package/dist/logging/decorators/log.decorator.js +0 -80
- package/dist/logging/decorators/log.decorator.js.map +0 -1
- package/dist/logging/middleware/context.middleware.d.ts +0 -2
- package/dist/logging/middleware/context.middleware.js +0 -29
- package/dist/logging/middleware/context.middleware.js.map +0 -1
- package/dist/logging/middleware/request-logging.middleware.d.ts +0 -3
- package/dist/logging/middleware/request-logging.middleware.js +0 -78
- package/dist/logging/middleware/request-logging.middleware.js.map +0 -1
- package/dist/logging/types/logging.types.d.ts +0 -79
- package/dist/logging/types/logging.types.js +0 -3
- package/dist/logging/types/logging.types.js.map +0 -1
- package/dist/middlewares/auth.middleware.d.ts +0 -2
- package/dist/middlewares/auth.middleware.js +0 -20
- package/dist/middlewares/auth.middleware.js.map +0 -1
- package/dist/middlewares/cors.middleware.d.ts +0 -2
- package/dist/middlewares/cors.middleware.js +0 -16
- package/dist/middlewares/cors.middleware.js.map +0 -1
- package/dist/middlewares/swagger.middleware.d.ts +0 -6
- package/dist/middlewares/swagger.middleware.js +0 -84
- package/dist/middlewares/swagger.middleware.js.map +0 -1
- package/dist/repositories/user.repository.d.ts +0 -16
- package/dist/repositories/user.repository.js +0 -110
- package/dist/repositories/user.repository.js.map +0 -1
- package/dist/schemas/user.schemas.d.ts +0 -214
- package/dist/schemas/user.schemas.js +0 -71
- package/dist/schemas/user.schemas.js.map +0 -1
- package/dist/services/config-demo.service.d.ts +0 -10
- package/dist/services/config-demo.service.js +0 -88
- package/dist/services/config-demo.service.js.map +0 -1
- package/dist/services/user.service.d.ts +0 -21
- package/dist/services/user.service.js +0 -201
- package/dist/services/user.service.js.map +0 -1
- /package/dist/events/{types/event.types.js → event.types.js} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvD,eAAO,MAAM,cAAc,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,kBAchF,CAAC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.authMiddleware = void 0;
|
4
|
+
// This is our example middleware function
|
5
|
+
const authMiddleware = async (request, reply) => {
|
6
|
+
console.log('🛡️ Running Auth Middleware...');
|
7
|
+
const apiKey = request.headers['authorization'];
|
8
|
+
console.log(apiKey);
|
9
|
+
if (apiKey !== 'Bearer my-secret-api-key') {
|
10
|
+
// Stop the request and send a 401 Unauthorized response
|
11
|
+
reply.code(401).send({ error: 'Unauthorized: Invalid API Key' });
|
12
|
+
return; // Important to stop further execution
|
13
|
+
}
|
14
|
+
// If authentication is successful, you can attach user info to the request
|
15
|
+
request.user = { id: 'user-123', roles: ['admin'] };
|
16
|
+
};
|
17
|
+
exports.authMiddleware = authMiddleware;
|
18
|
+
//# sourceMappingURL=auth.middleware.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":";;;AAEA,0CAA0C;AACnC,MAAM,cAAc,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;IACjF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAGpB,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;QACxC,wDAAwD;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,sCAAsC;IAClD,CAAC;IAED,2EAA2E;IAC1E,OAAe,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACjE,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { FastifyRequest, FastifyReply, HookHandlerDoneFunction } from 'fastify';
|
2
|
+
/**
|
3
|
+
* This hook MUST be registered first. It creates a new AsyncLocalStorage
|
4
|
+
* context for each request and populates it with a unique request ID.
|
5
|
+
*/
|
6
|
+
export declare const contextMiddleware: (req: FastifyRequest, res: FastifyReply, done: HookHandlerDoneFunction) => void;
|
7
|
+
//# sourceMappingURL=context.middleware.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/context.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAG,MAAM,SAAS,CAAC;AAIjF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC1B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,MAAM,uBAAuB,SAkBhC,CAAC"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.contextMiddleware = void 0;
|
4
|
+
const crypto_1 = require("crypto");
|
5
|
+
const request_context_service_1 = require("../core/request-context.service");
|
6
|
+
/**
|
7
|
+
* This hook MUST be registered first. It creates a new AsyncLocalStorage
|
8
|
+
* context for each request and populates it with a unique request ID.
|
9
|
+
*/
|
10
|
+
const contextMiddleware = (req, res, done) => {
|
11
|
+
// Run the rest of the request lifecycle within a new context
|
12
|
+
request_context_service_1.RequestContextService.run(() => {
|
13
|
+
const requestId = (0, crypto_1.randomUUID)();
|
14
|
+
const contextService = new request_context_service_1.RequestContextService();
|
15
|
+
// Set the request ID in the context for access anywhere in the app
|
16
|
+
contextService.set('requestId', requestId);
|
17
|
+
// Attach ID to the request object for easy access in other hooks/plugins
|
18
|
+
req.id = requestId;
|
19
|
+
// Attach ID to the response header for client-side tracing
|
20
|
+
res.header('X-Request-Id', requestId);
|
21
|
+
done();
|
22
|
+
});
|
23
|
+
};
|
24
|
+
exports.contextMiddleware = contextMiddleware;
|
25
|
+
//# sourceMappingURL=context.middleware.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.middleware.js","sourceRoot":"","sources":["../../src/middleware/context.middleware.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AACpC,6EAAwE;AAExE;;;GAGG;AACI,MAAM,iBAAiB,GAAG,CAC7B,GAAmB,EACnB,GAAiB,EACjB,IAA6B,EAC/B,EAAE;IACA,6DAA6D;IAC7D,+CAAqB,CAAC,GAAG,CAAC,GAAG,EAAE;QAC3B,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,+CAAqB,EAAE,CAAC;QAEnD,mEAAmE;QACnE,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE3C,yEAAyE;QACxE,GAAW,CAAC,EAAE,GAAG,SAAS,CAAC;QAE5B,2DAA2D;QAC3D,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAEtC,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AArBW,QAAA,iBAAiB,qBAqB5B"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./auth.middleware"), exports);
|
18
|
+
__exportStar(require("./context.middleware"), exports);
|
19
|
+
__exportStar(require("./request-logger.middleware"), exports);
|
20
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,uDAAoC;AACpC,8DAA2C"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { FastifyRequest, FastifyReply } from 'fastify';
|
2
|
+
export declare const requestLoggerOnRequest: (req: FastifyRequest, reply: FastifyReply, done: Function) => void;
|
3
|
+
export declare const requestLoggerOnResponse: (req: FastifyRequest, reply: FastifyReply, done: Function) => void;
|
4
|
+
//# sourceMappingURL=request-logger.middleware.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"request-logger.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/request-logger.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvD,eAAO,MAAM,sBAAsB,GAAI,KAAK,cAAc,EAAE,OAAO,YAAY,EAAE,MAAM,QAAQ,SAG9F,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,cAAc,EAAE,OAAO,YAAY,EAAE,MAAM,QAAQ,SAU/F,CAAC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.requestLoggerOnResponse = exports.requestLoggerOnRequest = void 0;
|
4
|
+
const requestLoggerOnRequest = (req, reply, done) => {
|
5
|
+
req.log.info({ req }, `--> Inbound Request`);
|
6
|
+
done();
|
7
|
+
};
|
8
|
+
exports.requestLoggerOnRequest = requestLoggerOnRequest;
|
9
|
+
const requestLoggerOnResponse = (req, reply, done) => {
|
10
|
+
req.log.info({
|
11
|
+
url: req.raw.url,
|
12
|
+
statusCode: reply.raw.statusCode,
|
13
|
+
durationMs: reply.elapsedTime,
|
14
|
+
}, `<-- Outbound Response`);
|
15
|
+
done();
|
16
|
+
};
|
17
|
+
exports.requestLoggerOnResponse = requestLoggerOnResponse;
|
18
|
+
//# sourceMappingURL=request-logger.middleware.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"request-logger.middleware.js","sourceRoot":"","sources":["../../src/middleware/request-logger.middleware.ts"],"names":[],"mappings":";;;AAEO,MAAM,sBAAsB,GAAG,CAAC,GAAmB,EAAE,KAAmB,EAAE,IAAc,EAAE,EAAE;IAC/F,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC;AAEK,MAAM,uBAAuB,GAAG,CAAC,GAAmB,EAAE,KAAmB,EAAE,IAAc,EAAE,EAAE;IAChG,GAAG,CAAC,GAAG,CAAC,IAAI,CACR;QACI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;QAChB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU;QAChC,UAAU,EAAE,KAAK,CAAC,WAAW;KAChC,EACD,uBAAuB,CAC1B,CAAC;IACF,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
|
package/package.json
CHANGED
@@ -1,59 +1,64 @@
|
|
1
1
|
{
|
2
2
|
"name": "bootifyjs",
|
3
|
-
"version": "
|
4
|
-
"
|
3
|
+
"version": "1.0.0",
|
4
|
+
"keywords": [],
|
5
|
+
"author": "",
|
6
|
+
"license": "ISC",
|
7
|
+
"description": "",
|
5
8
|
"main": "dist/index.js",
|
6
9
|
"types": "dist/index.d.ts",
|
7
10
|
"scripts": {
|
8
|
-
"
|
9
|
-
"
|
10
|
-
"
|
11
|
-
"
|
12
|
-
"test:watch": "vitest",
|
13
|
-
"test:coverage": "vitest run --coverage",
|
14
|
-
"test:benchmark": "ts-node tests/core/router.benchmark.ts",
|
15
|
-
"prepublishOnly": "npm run build"
|
11
|
+
"clean": "rm -rf dist",
|
12
|
+
"build": "npm run clean && tsc",
|
13
|
+
"prepublishOnly": "npm run build",
|
14
|
+
"dev": "nodemon --watch src --exec ts-node src/examples/index.ts"
|
16
15
|
},
|
17
16
|
"files": [
|
18
|
-
"dist"
|
19
|
-
"README.md",
|
20
|
-
"LICENSE"
|
17
|
+
"dist"
|
21
18
|
],
|
22
|
-
"
|
23
|
-
"
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
"
|
34
|
-
|
35
|
-
|
36
|
-
|
19
|
+
"exports": {
|
20
|
+
".": {
|
21
|
+
"import": "./dist/index.js",
|
22
|
+
"require": "./dist/index.js",
|
23
|
+
"types": "./dist/index.d.ts"
|
24
|
+
},
|
25
|
+
"./core": {
|
26
|
+
"import": "./dist/core/index.js",
|
27
|
+
"require": "./dist/core/index.js",
|
28
|
+
"types": "./dist/core/index.d.ts"
|
29
|
+
},
|
30
|
+
"./events": {
|
31
|
+
"import": "./dist/events/index.js",
|
32
|
+
"require": "./dist/events/index.js",
|
33
|
+
"types": "./dist/events/index.d.ts"
|
34
|
+
},
|
35
|
+
"./cache": {
|
36
|
+
"import": "./dist/core/cache/index.js",
|
37
|
+
"require": "./dist/core/cache/index.js",
|
38
|
+
"types": "./dist/core/cache/index.d.ts"
|
39
|
+
},
|
40
|
+
"./logging": {
|
41
|
+
"import": "./dist/logging/index.js",
|
42
|
+
"require": "./dist/logging/index.js",
|
43
|
+
"types": "./dist/logging/index.d.ts"
|
44
|
+
}
|
37
45
|
},
|
38
46
|
"dependencies": {
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"zod": "^3.
|
44
|
-
|
45
|
-
"peerDependencies": {
|
46
|
-
"typescript": ">=4.5.0"
|
47
|
-
},
|
48
|
-
"engines": {
|
49
|
-
"node": ">=16.0.0"
|
47
|
+
"fastify": "^5.4.0",
|
48
|
+
"inversify": "^7.6.1",
|
49
|
+
"reflect-metadata": "^0.2.2",
|
50
|
+
"sequelize": "^6.37.7",
|
51
|
+
"zod": "^3.25.76",
|
52
|
+
"zod-to-json-schema": "^3.24.6"
|
50
53
|
},
|
51
|
-
"
|
52
|
-
"
|
53
|
-
"
|
54
|
-
|
55
|
-
|
56
|
-
"
|
57
|
-
|
58
|
-
|
54
|
+
"devDependencies": {
|
55
|
+
"@fastify/swagger": "^9.5.1",
|
56
|
+
"@fastify/swagger-ui": "^5.2.3",
|
57
|
+
"@types/dotenv": "^6.1.1",
|
58
|
+
"@types/node": "^24.1.0",
|
59
|
+
"nodemon": "^3.1.10",
|
60
|
+
"pino-pretty": "^13.0.0",
|
61
|
+
"ts-node": "^10.9.2",
|
62
|
+
"typescript": "^5.8.3"
|
63
|
+
}
|
59
64
|
}
|
package/LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2025 BootifyJS
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
package/README.md
DELETED
@@ -1,173 +0,0 @@
|
|
1
|
-
# BootifyJS
|
2
|
-
|
3
|
-
A Spring Boot inspired Node.js framework with TypeScript, Dependency Injection, and Validation.
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
```bash
|
8
|
-
npm install bootifyjs
|
9
|
-
```
|
10
|
-
|
11
|
-
## Quick Start
|
12
|
-
|
13
|
-
```typescript
|
14
|
-
import { createBootifyApp, Controller, Get, Service } from 'bootifyjs';
|
15
|
-
|
16
|
-
@Service()
|
17
|
-
class GreetingService {
|
18
|
-
getGreeting(name: string) {
|
19
|
-
return `Hello, ${name}!`;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
@Controller('/api')
|
24
|
-
class GreetingController {
|
25
|
-
constructor(private greetingService: GreetingService) {}
|
26
|
-
|
27
|
-
@Get('/hello')
|
28
|
-
sayHello() {
|
29
|
-
return { message: this.greetingService.getGreeting('World') };
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
async function main() {
|
34
|
-
const { start } = await createBootifyApp({
|
35
|
-
port: 3000,
|
36
|
-
controllers: [GreetingController],
|
37
|
-
enableSwagger: true
|
38
|
-
});
|
39
|
-
|
40
|
-
await start();
|
41
|
-
console.log('Server running at http://localhost:3000');
|
42
|
-
}
|
43
|
-
|
44
|
-
main().catch(console.error);
|
45
|
-
```
|
46
|
-
|
47
|
-
## Simple Configuration Management
|
48
|
-
|
49
|
-
The framework provides a very simple configuration management system that automatically maps environment variables to nested configuration properties.
|
50
|
-
|
51
|
-
### How It Works
|
52
|
-
|
53
|
-
1. **Single Configuration Class**: Define one `AppConfig` class with your configuration structure
|
54
|
-
2. **Automatic Mapping**: Environment variables with `BOOTIFY_` prefix are automatically mapped to nested properties
|
55
|
-
3. **Type Conversion**: Values are automatically converted to numbers and booleans when possible
|
56
|
-
|
57
|
-
### Usage
|
58
|
-
|
59
|
-
**1. Define Your Configuration Structure:**
|
60
|
-
```typescript
|
61
|
-
import { Config } from '../core/config';
|
62
|
-
|
63
|
-
@Config('BOOTIFY')
|
64
|
-
export class AppConfig {
|
65
|
-
SERVICE_NAME: string = 'bootifyjs-app';
|
66
|
-
|
67
|
-
server: {
|
68
|
-
port: number;
|
69
|
-
host: string;
|
70
|
-
name?: string;
|
71
|
-
} = {
|
72
|
-
port: 3000,
|
73
|
-
host: 'localhost'
|
74
|
-
};
|
75
|
-
|
76
|
-
database: {
|
77
|
-
host: string;
|
78
|
-
port: number;
|
79
|
-
name: string;
|
80
|
-
} = {
|
81
|
-
host: 'localhost',
|
82
|
-
port: 5432,
|
83
|
-
name: 'myapp'
|
84
|
-
};
|
85
|
-
}
|
86
|
-
```
|
87
|
-
|
88
|
-
**2. Set Environment Variables:**
|
89
|
-
```bash
|
90
|
-
# Maps to appConfig.SERVICE_NAME
|
91
|
-
BOOTIFY_SERVICE_NAME=my-awesome-app
|
92
|
-
|
93
|
-
# Maps to appConfig.server.port
|
94
|
-
BOOTIFY_SERVER_PORT=8080
|
95
|
-
|
96
|
-
# Maps to appConfig.server.host
|
97
|
-
BOOTIFY_SERVER_HOST=0.0.0.0
|
98
|
-
|
99
|
-
# Maps to appConfig.server.name
|
100
|
-
BOOTIFY_SERVER_NAME=my-server
|
101
|
-
|
102
|
-
# Maps to appConfig.database.host
|
103
|
-
BOOTIFY_DATABASE_HOST=postgres-server
|
104
|
-
|
105
|
-
# Maps to appConfig.database.port
|
106
|
-
BOOTIFY_DATABASE_PORT=5432
|
107
|
-
```
|
108
|
-
|
109
|
-
**3. Access Configuration:**
|
110
|
-
```typescript
|
111
|
-
import { getConfigInstance } from './core/config';
|
112
|
-
import { AppConfig } from './config/app.config';
|
113
|
-
|
114
|
-
const appConfig = getConfigInstance(AppConfig);
|
115
|
-
|
116
|
-
console.log(appConfig.SERVICE_NAME); // 'my-awesome-app'
|
117
|
-
console.log(appConfig.server.port); // 8080
|
118
|
-
console.log(appConfig.server.host); // '0.0.0.0'
|
119
|
-
console.log(appConfig.database.host); // 'postgres-server'
|
120
|
-
```
|
121
|
-
|
122
|
-
**4. Inject into Services:**
|
123
|
-
```typescript
|
124
|
-
import { InjectConfig } from './core/decorators';
|
125
|
-
|
126
|
-
@Service()
|
127
|
-
export class MyService {
|
128
|
-
constructor(@InjectConfig(AppConfig) private config: AppConfig) {}
|
129
|
-
|
130
|
-
doSomething() {
|
131
|
-
console.log(`Service: ${this.config.SERVICE_NAME}`);
|
132
|
-
console.log(`Running on port: ${this.config.server.port}`);
|
133
|
-
}
|
134
|
-
}
|
135
|
-
```
|
136
|
-
|
137
|
-
### Environment Variable Mapping Rules
|
138
|
-
|
139
|
-
The system automatically converts environment variable names to nested property paths:
|
140
|
-
|
141
|
-
- `BOOTIFY_SERVICE_NAME` → `appConfig.SERVICE_NAME`
|
142
|
-
- `BOOTIFY_SERVER_PORT` → `appConfig.server.port`
|
143
|
-
- `BOOTIFY_SERVER_HOST` → `appConfig.server.host`
|
144
|
-
- `BOOTIFY_DATABASE_HOST` → `appConfig.database.host`
|
145
|
-
- `BOOTIFY_DATABASE_PORT` → `appConfig.database.port`
|
146
|
-
|
147
|
-
### Automatic Type Conversion
|
148
|
-
|
149
|
-
- **Numbers**: `"8080"` → `8080`
|
150
|
-
- **Booleans**: `"true"` → `true`, `"false"` → `false`
|
151
|
-
- **Strings**: Everything else remains as string
|
152
|
-
|
153
|
-
### Getting Started
|
154
|
-
|
155
|
-
1. Copy `example.env` to `.env` and modify values
|
156
|
-
2. Set your environment variables following the `BOOTIFY_*` pattern
|
157
|
-
3. Access your configuration using `getConfigInstance(AppConfig)`
|
158
|
-
|
159
|
-
That's it! No complex setup, no manual property mapping - just define your structure and set your environment variables.
|
160
|
-
|
161
|
-
## Features
|
162
|
-
|
163
|
-
- **Dependency Injection**: Automatic constructor injection with `@Injectable`, `@Service`, and `@Repository` decorators
|
164
|
-
- **REST API**: Easy controller definition with `@Controller`, `@Get`, `@Post`, etc.
|
165
|
-
- **Validation**: Request validation with Zod schemas
|
166
|
-
- **Configuration**: Environment-based configuration with automatic mapping
|
167
|
-
- **OpenAPI**: Automatic OpenAPI documentation generation
|
168
|
-
- **Logging**: Comprehensive logging system with context tracking
|
169
|
-
- **Event System**: Type-safe event system with middleware support
|
170
|
-
|
171
|
-
## Documentation
|
172
|
-
|
173
|
-
For more detailed documentation, please visit our [GitHub repository](https://github.com/bootifyjs/bootifyjs).
|
@@ -1,29 +0,0 @@
|
|
1
|
-
export declare class AppConfig {
|
2
|
-
SERVICE_NAME: string;
|
3
|
-
server: {
|
4
|
-
port: number;
|
5
|
-
host: string;
|
6
|
-
name?: string;
|
7
|
-
};
|
8
|
-
database: {
|
9
|
-
host: string;
|
10
|
-
port: number;
|
11
|
-
name: string;
|
12
|
-
username: string;
|
13
|
-
password: string;
|
14
|
-
};
|
15
|
-
logging: {
|
16
|
-
level: string;
|
17
|
-
enabled: boolean;
|
18
|
-
};
|
19
|
-
api: {
|
20
|
-
version: string;
|
21
|
-
};
|
22
|
-
cors: {
|
23
|
-
enabled: boolean;
|
24
|
-
};
|
25
|
-
jwt: {
|
26
|
-
secret: string;
|
27
|
-
expiresIn: number;
|
28
|
-
};
|
29
|
-
}
|
@@ -1,55 +0,0 @@
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
-
exports.AppConfig = void 0;
|
10
|
-
const config_1 = require("../core/config");
|
11
|
-
let AppConfig = class AppConfig {
|
12
|
-
constructor() {
|
13
|
-
// Service configuration
|
14
|
-
this.SERVICE_NAME = 'bootifyjs-app';
|
15
|
-
// Server configuration - will be populated from BOOTIFY_SERVER_* env vars
|
16
|
-
this.server = {
|
17
|
-
port: 3000,
|
18
|
-
host: 'localhost'
|
19
|
-
};
|
20
|
-
// Database configuration - will be populated from BOOTIFY_DATABASE_* env vars
|
21
|
-
this.database = {
|
22
|
-
host: 'localhost',
|
23
|
-
port: 5432,
|
24
|
-
name: 'bootifyjs',
|
25
|
-
username: 'admin',
|
26
|
-
password: 'password'
|
27
|
-
};
|
28
|
-
// Logging configuration - will be populated from BOOTIFY_LOGGING_* env vars
|
29
|
-
this.logging = {
|
30
|
-
level: 'info',
|
31
|
-
enabled: true
|
32
|
-
};
|
33
|
-
// Any other configuration can be added here
|
34
|
-
// The @Config decorator will automatically map environment variables
|
35
|
-
// based on the property structure
|
36
|
-
// API Configuration - will be populated from BOOTIFY_API_* env vars
|
37
|
-
this.api = {
|
38
|
-
version: 'v1'
|
39
|
-
};
|
40
|
-
// CORS Configuration - will be populated from BOOTIFY_CORS_* env vars
|
41
|
-
this.cors = {
|
42
|
-
enabled: true
|
43
|
-
};
|
44
|
-
// JWT Configuration - will be populated from BOOTIFY_JWT_* env vars
|
45
|
-
this.jwt = {
|
46
|
-
secret: 'default-secret',
|
47
|
-
expiresIn: 3600
|
48
|
-
};
|
49
|
-
}
|
50
|
-
};
|
51
|
-
exports.AppConfig = AppConfig;
|
52
|
-
exports.AppConfig = AppConfig = __decorate([
|
53
|
-
(0, config_1.Config)('BOOTIFY')
|
54
|
-
], AppConfig);
|
55
|
-
//# sourceMappingURL=app.config.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../src/config/app.config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAGjC,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QACL,wBAAwB;QACxB,iBAAY,GAAW,eAAe,CAAC;QAEvC,0EAA0E;QAC1E,WAAM,GAIF;YACF,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,8EAA8E;QAC9E,aAAQ,GAMJ;YACF,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,UAAU;SACrB,CAAC;QAEF,4EAA4E;QAC5E,YAAO,GAGH;YACF,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,4CAA4C;QAC5C,qEAAqE;QACrE,kCAAkC;QAElC,oEAAoE;QACpE,QAAG,GAEC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,sEAAsE;QACtE,SAAI,GAEA;YACF,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,oEAAoE;QACpE,QAAG,GAGC;YACF,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CAAA,CAAA;AAhEY,8BAAS;oBAAT,SAAS;IADrB,IAAA,eAAM,EAAC,SAAS,CAAC;GACL,SAAS,CAgErB"}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import { AppConfig } from '../config/app.config';
|
2
|
-
import { ConfigDemoService } from '../services/config-demo.service';
|
3
|
-
export declare class ConfigController {
|
4
|
-
private config;
|
5
|
-
private configDemoService;
|
6
|
-
constructor(config: AppConfig, configDemoService: ConfigDemoService);
|
7
|
-
getConfigInfo(): AppConfig;
|
8
|
-
getServerUrl(): {
|
9
|
-
url: string;
|
10
|
-
message: string;
|
11
|
-
};
|
12
|
-
runConfigDemo(): {
|
13
|
-
message: string;
|
14
|
-
timestamp: string;
|
15
|
-
};
|
16
|
-
}
|
@@ -1,66 +0,0 @@
|
|
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
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
exports.ConfigController = void 0;
|
16
|
-
const decorators_1 = require("../core/decorators");
|
17
|
-
const app_config_1 = require("../config/app.config");
|
18
|
-
const config_demo_service_1 = require("../services/config-demo.service");
|
19
|
-
let ConfigController = class ConfigController {
|
20
|
-
constructor(config, configDemoService) {
|
21
|
-
this.config = config;
|
22
|
-
this.configDemoService = configDemoService;
|
23
|
-
}
|
24
|
-
getConfigInfo() {
|
25
|
-
return this.config;
|
26
|
-
}
|
27
|
-
getServerUrl() {
|
28
|
-
return {
|
29
|
-
url: this.configDemoService.getServerUrl(),
|
30
|
-
message: 'Current server URL based on configuration'
|
31
|
-
};
|
32
|
-
}
|
33
|
-
runConfigDemo() {
|
34
|
-
this.configDemoService.demonstrateConfig();
|
35
|
-
return {
|
36
|
-
message: 'Configuration demo completed. Check the logs for details.',
|
37
|
-
timestamp: new Date().toISOString()
|
38
|
-
};
|
39
|
-
}
|
40
|
-
};
|
41
|
-
exports.ConfigController = ConfigController;
|
42
|
-
__decorate([
|
43
|
-
(0, decorators_1.Get)('/info'),
|
44
|
-
__metadata("design:type", Function),
|
45
|
-
__metadata("design:paramtypes", []),
|
46
|
-
__metadata("design:returntype", void 0)
|
47
|
-
], ConfigController.prototype, "getConfigInfo", null);
|
48
|
-
__decorate([
|
49
|
-
(0, decorators_1.Get)('/server-url'),
|
50
|
-
__metadata("design:type", Function),
|
51
|
-
__metadata("design:paramtypes", []),
|
52
|
-
__metadata("design:returntype", void 0)
|
53
|
-
], ConfigController.prototype, "getServerUrl", null);
|
54
|
-
__decorate([
|
55
|
-
(0, decorators_1.Get)('/demo'),
|
56
|
-
__metadata("design:type", Function),
|
57
|
-
__metadata("design:paramtypes", []),
|
58
|
-
__metadata("design:returntype", void 0)
|
59
|
-
], ConfigController.prototype, "runConfigDemo", null);
|
60
|
-
exports.ConfigController = ConfigController = __decorate([
|
61
|
-
(0, decorators_1.Controller)('/config'),
|
62
|
-
__param(0, (0, decorators_1.InjectConfig)(app_config_1.AppConfig)),
|
63
|
-
__metadata("design:paramtypes", [app_config_1.AppConfig,
|
64
|
-
config_demo_service_1.ConfigDemoService])
|
65
|
-
], ConfigController);
|
66
|
-
//# sourceMappingURL=config.controller.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"config.controller.js","sourceRoot":"","sources":["../../src/controllers/config.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAmE;AACnE,qDAAiD;AACjD,yEAAoE;AAG7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmC,MAAiB,EAC1C,iBAAoC;QADX,WAAM,GAAN,MAAM,CAAW;QAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC3C,CAAC;IAGJ,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAGD,YAAY;QACV,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;YAC1C,OAAO,EAAE,2CAA2C;SACrD,CAAC;IACJ,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,2DAA2D;YACpE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AA3BY,4CAAgB;AAO3B;IADC,IAAA,gBAAG,EAAC,OAAO,CAAC;;;;qDAGZ;AAGD;IADC,IAAA,gBAAG,EAAC,aAAa,CAAC;;;;oDAMlB;AAGD;IADC,IAAA,gBAAG,EAAC,OAAO,CAAC;;;;qDAOZ;2BA1BU,gBAAgB;IAD5B,IAAA,uBAAU,EAAC,SAAS,CAAC;IAGjB,WAAA,IAAA,yBAAY,EAAC,sBAAS,CAAC,CAAA;qCAAiB,sBAAS;QACvB,uCAAiB;GAHnC,gBAAgB,CA2B5B"}
|