@expressots/core 2.3.0 → 2.4.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/lib/CHANGELOG.md +30 -0
- package/lib/cjs/application/app-container.js +10 -2
- package/lib/cjs/application/application-factory.js +33 -44
- package/lib/cjs/console/console.js +26 -39
- package/lib/cjs/controller/base-controller.js +2 -13
- package/lib/cjs/error/app-error.js +11 -0
- package/lib/cjs/error/report.js +4 -1
- package/lib/cjs/error/status-code.js +8 -2
- package/lib/cjs/middleware/middleware-resolver.js +15 -13
- package/lib/cjs/middleware/middleware-service.js +17 -11
- package/lib/cjs/provider/dto-validator/dto-validator.provider.js +3 -12
- package/lib/cjs/provider/environment/env-validator.provider.js +2 -2
- package/lib/cjs/provider/logger/logger-service.js +1 -0
- package/lib/cjs/provider/provider-service.js +2 -0
- package/lib/cjs/types/application/app-container.d.ts +0 -1
- package/lib/cjs/types/application/application-factory.d.ts +0 -1
- package/lib/cjs/types/application/index.d.ts +0 -1
- package/lib/cjs/types/common/color-service.provider.d.ts +0 -1
- package/lib/cjs/types/common/index.d.ts +0 -1
- package/lib/cjs/types/common/package-resolver.provider.d.ts +0 -1
- package/lib/cjs/types/common/project-config.provider.d.ts +0 -1
- package/lib/cjs/types/console/console.d.ts +0 -1
- package/lib/cjs/types/console/index.d.ts +0 -1
- package/lib/cjs/types/container-module/container-module.d.ts +0 -1
- package/lib/cjs/types/container-module/index.d.ts +0 -1
- package/lib/cjs/types/controller/base-controller.d.ts +2 -3
- package/lib/cjs/types/controller/index.d.ts +0 -1
- package/lib/cjs/types/decorator/index.d.ts +0 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts +0 -1
- package/lib/cjs/types/error/app-error.d.ts +0 -1
- package/lib/cjs/types/error/error-handler-middleware.d.ts +0 -1
- package/lib/cjs/types/error/index.d.ts +0 -1
- package/lib/cjs/types/error/report.d.ts +0 -1
- package/lib/cjs/types/error/status-code.d.ts +0 -1
- package/lib/cjs/types/index.d.ts +0 -1
- package/lib/cjs/types/middleware/index.d.ts +1 -1
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -0
- package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +0 -1
- package/lib/cjs/types/middleware/middleware-resolver.d.ts +0 -1
- package/lib/cjs/types/middleware/middleware-service.d.ts +9 -1
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +0 -1
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +0 -1
- package/lib/cjs/types/provider/index.d.ts +0 -1
- package/lib/cjs/types/provider/logger/logger-service.d.ts +0 -1
- package/lib/cjs/types/provider/provider-service.d.ts +0 -1
- package/lib/cjs/types/render/handlebars.interface.d.ts +0 -1
- package/lib/cjs/types/render/index.d.ts +0 -1
- package/lib/cjs/types/render/render.type.d.ts +0 -1
- package/lib/package.json +5 -6
- package/package.json +5 -6
- package/lib/cjs/types/application/app-container.d.ts.map +0 -1
- package/lib/cjs/types/application/application-factory.d.ts.map +0 -1
- package/lib/cjs/types/application/index.d.ts.map +0 -1
- package/lib/cjs/types/common/color-service.provider.d.ts.map +0 -1
- package/lib/cjs/types/common/index.d.ts.map +0 -1
- package/lib/cjs/types/common/package-resolver.provider.d.ts.map +0 -1
- package/lib/cjs/types/common/project-config.provider.d.ts.map +0 -1
- package/lib/cjs/types/console/console.d.ts.map +0 -1
- package/lib/cjs/types/console/index.d.ts.map +0 -1
- package/lib/cjs/types/container-module/container-module.d.ts.map +0 -1
- package/lib/cjs/types/container-module/index.d.ts.map +0 -1
- package/lib/cjs/types/controller/base-controller.d.ts.map +0 -1
- package/lib/cjs/types/controller/index.d.ts.map +0 -1
- package/lib/cjs/types/decorator/index.d.ts.map +0 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts.map +0 -1
- package/lib/cjs/types/error/app-error.d.ts.map +0 -1
- package/lib/cjs/types/error/error-handler-middleware.d.ts.map +0 -1
- package/lib/cjs/types/error/index.d.ts.map +0 -1
- package/lib/cjs/types/error/report.d.ts.map +0 -1
- package/lib/cjs/types/error/status-code.d.ts.map +0 -1
- package/lib/cjs/types/index.d.ts.map +0 -1
- package/lib/cjs/types/middleware/index.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts.map +0 -1
- package/lib/cjs/types/middleware/middleware-resolver.d.ts.map +0 -1
- package/lib/cjs/types/middleware/middleware-service.d.ts.map +0 -1
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts.map +0 -1
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts.map +0 -1
- package/lib/cjs/types/provider/index.d.ts.map +0 -1
- package/lib/cjs/types/provider/logger/logger-service.d.ts.map +0 -1
- package/lib/cjs/types/provider/provider-service.d.ts.map +0 -1
- package/lib/cjs/types/render/handlebars.interface.d.ts.map +0 -1
- package/lib/cjs/types/render/index.d.ts.map +0 -1
- package/lib/cjs/types/render/render.type.d.ts.map +0 -1
- package/lib/esm/application/app-container.js +0 -82
- package/lib/esm/application/application-factory.js +0 -72
- package/lib/esm/application/index.js +0 -7
- package/lib/esm/common/color-service.provider.js +0 -46
- package/lib/esm/common/package-resolver.provider.js +0 -35
- package/lib/esm/common/project-config.provider.js +0 -2
- package/lib/esm/console/console.js +0 -61
- package/lib/esm/console/index.js +0 -5
- package/lib/esm/container-module/container-module.js +0 -111
- package/lib/esm/container-module/index.js +0 -6
- package/lib/esm/controller/base-controller.js +0 -75
- package/lib/esm/controller/index.js +0 -5
- package/lib/esm/decorator/index.js +0 -17
- package/lib/esm/decorator/scope-binding.js +0 -44
- package/lib/esm/error/app-error.js +0 -37
- package/lib/esm/error/error-handler-middleware.js +0 -28
- package/lib/esm/error/index.js +0 -9
- package/lib/esm/error/report.js +0 -57
- package/lib/esm/error/status-code.js +0 -89
- package/lib/esm/index.mjs +0 -26
- package/lib/esm/middleware/index.js +0 -29
- package/lib/esm/middleware/interfaces/body-parser.interface.js +0 -2
- package/lib/esm/middleware/interfaces/compression.interface.js +0 -2
- package/lib/esm/middleware/interfaces/cookie-parser.interface.js +0 -2
- package/lib/esm/middleware/interfaces/cookie-session/cookie-session.interface.js +0 -2
- package/lib/esm/middleware/interfaces/cookie-session/keygrip.interface.js +0 -2
- package/lib/esm/middleware/interfaces/cors.interface.js +0 -2
- package/lib/esm/middleware/interfaces/morgan.interface.js +0 -2
- package/lib/esm/middleware/interfaces/serve-favicon.interface.js +0 -2
- package/lib/esm/middleware/interfaces/serve-static.interface.js +0 -2
- package/lib/esm/middleware/middleware-resolver.js +0 -69
- package/lib/esm/middleware/middleware-service.js +0 -258
- package/lib/esm/provider/dto-validator/dto-validator.provider.js +0 -53
- package/lib/esm/provider/environment/env-validator.provider.js +0 -96
- package/lib/esm/provider/index.js +0 -11
- package/lib/esm/provider/logger/logger-service.js +0 -115
- package/lib/esm/provider/provider-service.js +0 -38
- package/lib/esm/render/handlebars.interface.js +0 -2
- package/lib/esm/render/index.js +0 -2
- package/lib/esm/render/render.type.js +0 -2
- package/lib/esm/types/application/app-container.d.ts +0 -126
- package/lib/esm/types/application/app-container.d.ts.map +0 -1
- package/lib/esm/types/application/application-factory.d.ts +0 -34
- package/lib/esm/types/application/application-factory.d.ts.map +0 -1
- package/lib/esm/types/application/index.d.ts +0 -3
- package/lib/esm/types/application/index.d.ts.map +0 -1
- package/lib/esm/types/common/color-service.provider.d.ts +0 -30
- package/lib/esm/types/common/color-service.provider.d.ts.map +0 -1
- package/lib/esm/types/common/index.d.ts +0 -2
- package/lib/esm/types/common/index.d.ts.map +0 -1
- package/lib/esm/types/common/package-resolver.provider.d.ts +0 -9
- package/lib/esm/types/common/package-resolver.provider.d.ts.map +0 -1
- package/lib/esm/types/common/project-config.provider.d.ts +0 -48
- package/lib/esm/types/common/project-config.provider.d.ts.map +0 -1
- package/lib/esm/types/console/console.d.ts +0 -28
- package/lib/esm/types/console/console.d.ts.map +0 -1
- package/lib/esm/types/console/index.d.ts +0 -2
- package/lib/esm/types/console/index.d.ts.map +0 -1
- package/lib/esm/types/container-module/container-module.d.ts +0 -29
- package/lib/esm/types/container-module/container-module.d.ts.map +0 -1
- package/lib/esm/types/container-module/index.d.ts +0 -2
- package/lib/esm/types/container-module/index.d.ts.map +0 -1
- package/lib/esm/types/controller/base-controller.d.ts +0 -49
- package/lib/esm/types/controller/base-controller.d.ts.map +0 -1
- package/lib/esm/types/controller/index.d.ts +0 -2
- package/lib/esm/types/controller/index.d.ts.map +0 -1
- package/lib/esm/types/decorator/index.d.ts +0 -2
- package/lib/esm/types/decorator/index.d.ts.map +0 -1
- package/lib/esm/types/decorator/scope-binding.d.ts +0 -34
- package/lib/esm/types/decorator/scope-binding.d.ts.map +0 -1
- package/lib/esm/types/error/app-error.d.ts +0 -30
- package/lib/esm/types/error/app-error.d.ts.map +0 -1
- package/lib/esm/types/error/error-handler-middleware.d.ts +0 -12
- package/lib/esm/types/error/error-handler-middleware.d.ts.map +0 -1
- package/lib/esm/types/error/index.d.ts +0 -4
- package/lib/esm/types/error/index.d.ts.map +0 -1
- package/lib/esm/types/error/report.d.ts +0 -26
- package/lib/esm/types/error/report.d.ts.map +0 -1
- package/lib/esm/types/error/status-code.d.ts +0 -137
- package/lib/esm/types/error/status-code.d.ts.map +0 -1
- package/lib/esm/types/index.d.ts +0 -11
- package/lib/esm/types/index.d.ts.map +0 -1
- package/lib/esm/types/middleware/index.d.ts +0 -10
- package/lib/esm/types/middleware/index.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts +0 -34
- package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/compression.interface.d.ts +0 -99
- package/lib/esm/types/middleware/interfaces/compression.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts +0 -10
- package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +0 -58
- package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +0 -28
- package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/cors.interface.d.ts +0 -58
- package/lib/esm/types/middleware/interfaces/cors.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/morgan.interface.d.ts +0 -41
- package/lib/esm/types/middleware/interfaces/morgan.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts +0 -12
- package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts +0 -71
- package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts.map +0 -1
- package/lib/esm/types/middleware/middleware-resolver.d.ts +0 -12
- package/lib/esm/types/middleware/middleware-resolver.d.ts.map +0 -1
- package/lib/esm/types/middleware/middleware-service.d.ts +0 -237
- package/lib/esm/types/middleware/middleware-service.d.ts.map +0 -1
- package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +0 -12
- package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts.map +0 -1
- package/lib/esm/types/provider/environment/env-validator.provider.d.ts +0 -31
- package/lib/esm/types/provider/environment/env-validator.provider.d.ts.map +0 -1
- package/lib/esm/types/provider/index.d.ts +0 -5
- package/lib/esm/types/provider/index.d.ts.map +0 -1
- package/lib/esm/types/provider/logger/logger-service.d.ts +0 -50
- package/lib/esm/types/provider/logger/logger-service.d.ts.map +0 -1
- package/lib/esm/types/provider/provider-service.d.ts +0 -31
- package/lib/esm/types/provider/provider-service.d.ts.map +0 -1
- package/lib/esm/types/render/handlebars.interface.d.ts +0 -47
- package/lib/esm/types/render/handlebars.interface.d.ts.map +0 -1
- package/lib/esm/types/render/index.d.ts +0 -3
- package/lib/esm/types/render/index.d.ts.map +0 -1
- package/lib/esm/types/render/render.type.d.ts +0 -13
- package/lib/esm/types/render/render.type.d.ts.map +0 -1
- /package/lib/{esm/common/index.js → cjs/middleware/interfaces/express-rate-limit.interface.js} +0 -0
package/lib/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [2.4.0](https://github.com/expressots/expressots/compare/2.3.0...2.4.0) (2023-10-01)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add interface for `express-rate-limit` ([86cf5d2](https://github.com/expressots/expressots/commit/86cf5d2d2bdbdd4acdd6f4a0597634790d99f972))
|
|
9
|
+
* implement `express-rate-limit` in service ([e31a5f4](https://github.com/expressots/expressots/commit/e31a5f47b67ac01795b6ac64e639cd53078f8048))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* add App container all tests ([d6c8212](https://github.com/expressots/expressots/commit/d6c8212ec80fe239b38e4ff592ed0be3e507cd99))
|
|
15
|
+
* add cjs as default build ([d16cfa5](https://github.com/expressots/expressots/commit/d16cfa50238c2e299fffaf079fb62847de94e7d8))
|
|
16
|
+
* add code coverage configuration ([3676e32](https://github.com/expressots/expressots/commit/3676e328833bd92ea7ebe28b567195bbd5c25bb2))
|
|
17
|
+
* adjust reporter to text, html, json ([04acb04](https://github.com/expressots/expressots/commit/04acb04c2e9229f0531ffb990f22665d94506f2c))
|
|
18
|
+
* remove adapter peer dependecy ([bad171b](https://github.com/expressots/expressots/commit/bad171be98f3b2ec58c3793836ba2000c3727dbc))
|
|
19
|
+
* resolves all current issues ([877c121](https://github.com/expressots/expressots/commit/877c1216405e35b3b90f61caf13d73b20202eac5))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Documentation
|
|
23
|
+
|
|
24
|
+
* add jsdoc to interfaces ([228d190](https://github.com/expressots/expressots/commit/228d190f7ca58c71e5bcd1f03ecf70b2e7fdbe03))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Code Refactoring
|
|
28
|
+
|
|
29
|
+
* add types to default params ([b366e14](https://github.com/expressots/expressots/commit/b366e14d2b7d9322b4ea92ae3afdfbb834e42e16))
|
|
30
|
+
* eliminate duplicate return statements ([b57fa85](https://github.com/expressots/expressots/commit/b57fa8517c5656fed71b73cc3c2b65834c8d8833))
|
|
31
|
+
* revert changes due to future features ([89fce01](https://github.com/expressots/expressots/commit/89fce01f08ebd1539471e51808040e4383c3e6f4))
|
|
32
|
+
|
|
3
33
|
## [2.3.0](https://github.com/expressots/expressots/compare/2.2.1...2.3.0) (2023-09-25)
|
|
4
34
|
|
|
5
35
|
|
|
@@ -26,12 +26,17 @@ const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
|
26
26
|
* @provide AppContainer
|
|
27
27
|
*/
|
|
28
28
|
let AppContainer = AppContainer_1 = class AppContainer {
|
|
29
|
+
container;
|
|
30
|
+
options;
|
|
29
31
|
/**
|
|
30
32
|
* Constructs the AppContainer instance.
|
|
31
33
|
* @param options - The options for creating the container. Can include custom default scope and skip base class checks setting.
|
|
32
34
|
*/
|
|
33
35
|
constructor(options) {
|
|
34
|
-
this.options =
|
|
36
|
+
this.options = {
|
|
37
|
+
defaultScope: inversify_1.BindingScopeEnum.Request,
|
|
38
|
+
...options,
|
|
39
|
+
};
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
37
42
|
* Creates and configures a new dependency injection container.
|
|
@@ -40,7 +45,10 @@ let AppContainer = AppContainer_1 = class AppContainer {
|
|
|
40
45
|
* @returns The configured dependency injection container.
|
|
41
46
|
*/
|
|
42
47
|
create(modules) {
|
|
43
|
-
const containerOptions =
|
|
48
|
+
const containerOptions = {
|
|
49
|
+
autoBindInjectable: true,
|
|
50
|
+
...this.options,
|
|
51
|
+
};
|
|
44
52
|
this.container = new inversify_1.Container(containerOptions);
|
|
45
53
|
this.container.load((0, inversify_binding_decorators_1.buildProviderModule)(), ...modules);
|
|
46
54
|
return this.container;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.AppFactory = void 0;
|
|
13
4
|
const logger_service_1 = require("../provider/logger/logger-service");
|
|
@@ -22,6 +13,7 @@ const adapter_express_1 = require("@expressots/adapter-express");
|
|
|
22
13
|
* either using a custom application type or with provided middlewares.
|
|
23
14
|
*/
|
|
24
15
|
class AppFactory {
|
|
16
|
+
static logger = new logger_service_1.Logger();
|
|
25
17
|
/* public static async create(
|
|
26
18
|
container: Container,
|
|
27
19
|
middlewares: Array<express.RequestHandler>,
|
|
@@ -33,42 +25,40 @@ class AppFactory {
|
|
|
33
25
|
* @param appTypeOrMiddlewares - Custom application class or array of middlewares.
|
|
34
26
|
* @returns Instance of the application.
|
|
35
27
|
*/
|
|
36
|
-
static create(container, appTypeOrMiddlewares, httpServerFactory /*| AppFastify*/) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return app;
|
|
53
|
-
}
|
|
28
|
+
static async create(container, appTypeOrMiddlewares, httpServerFactory /*| AppFastify*/) {
|
|
29
|
+
let app /*| AppFastify*/ = {}; /*| AppFastify*/
|
|
30
|
+
if (this.isOpinionated(appTypeOrMiddlewares)) {
|
|
31
|
+
switch (httpServerFactory) {
|
|
32
|
+
case adapter_express_1.AppExpress:
|
|
33
|
+
app = container.resolve(appTypeOrMiddlewares);
|
|
34
|
+
app.create(container);
|
|
35
|
+
return app;
|
|
36
|
+
/* case AppFastify:
|
|
37
|
+
app = container.resolve(appTypeOrMiddlewares as new () => AppFastify);
|
|
38
|
+
await app.create(container);
|
|
39
|
+
return app as IApplicationFastify; */
|
|
40
|
+
default:
|
|
41
|
+
app = container.resolve(appTypeOrMiddlewares);
|
|
42
|
+
app.create(container);
|
|
43
|
+
return app;
|
|
54
44
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
switch (httpServerFactory) {
|
|
48
|
+
case adapter_express_1.AppExpress:
|
|
49
|
+
app = container.get(adapter_express_1.AppExpress);
|
|
50
|
+
app.create(container, appTypeOrMiddlewares);
|
|
51
|
+
return app;
|
|
52
|
+
/* case AppFastify:
|
|
53
|
+
app = container.get<AppFastify>(AppFastify);
|
|
54
|
+
await app.create(container, appTypeOrMiddlewares as Array<Handler>);
|
|
55
|
+
return app as AppFastify; */
|
|
56
|
+
default:
|
|
57
|
+
app = container.get(adapter_express_1.AppExpress);
|
|
58
|
+
app.create(container, appTypeOrMiddlewares);
|
|
59
|
+
return app;
|
|
70
60
|
}
|
|
71
|
-
}
|
|
61
|
+
}
|
|
72
62
|
}
|
|
73
63
|
/**
|
|
74
64
|
* Checks if the provided parameter is a custom application type.
|
|
@@ -80,4 +70,3 @@ class AppFactory {
|
|
|
80
70
|
}
|
|
81
71
|
}
|
|
82
72
|
exports.AppFactory = AppFactory;
|
|
83
|
-
AppFactory.logger = new logger_service_1.Logger();
|
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
var Console_1;
|
|
18
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
10
|
exports.Console = void 0;
|
|
@@ -29,12 +20,10 @@ let Console = Console_1 = class Console {
|
|
|
29
20
|
* @param message - The message to be printed.
|
|
30
21
|
* @param colorStyle - The color style for the message.
|
|
31
22
|
*/
|
|
32
|
-
printColor(message, colorStyle) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
console.log(`${color_service_provider_1.bgColorCodes[bgColor]}${color_service_provider_1.colorCodes[textColor]}${message}\x1b[0m`);
|
|
37
|
-
});
|
|
23
|
+
async printColor(message, colorStyle) {
|
|
24
|
+
const textColor = "black";
|
|
25
|
+
const bgColor = colorStyle;
|
|
26
|
+
console.log(`${color_service_provider_1.bgColorCodes[bgColor]}${color_service_provider_1.colorCodes[textColor]}${message}\x1b[0m`);
|
|
38
27
|
}
|
|
39
28
|
/**
|
|
40
29
|
* Display a message in the console with details about the running server.
|
|
@@ -42,30 +31,28 @@ let Console = Console_1 = class Console {
|
|
|
42
31
|
* @param environment - The server environment.
|
|
43
32
|
* @param consoleMessage - Optional application message details for console output.
|
|
44
33
|
*/
|
|
45
|
-
messageServer(port, environment, consoleMessage) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
`port ${port} - Environment: ${environment}`, terminalColor);
|
|
68
|
-
});
|
|
34
|
+
async messageServer(port, environment, consoleMessage) {
|
|
35
|
+
const appConsoleMessage = {
|
|
36
|
+
appName: consoleMessage?.appName || "Application",
|
|
37
|
+
appVersion: consoleMessage?.appVersion || "not provided",
|
|
38
|
+
};
|
|
39
|
+
let terminalColor = color_service_provider_1.ColorStyle.None;
|
|
40
|
+
switch (environment.toLowerCase()) {
|
|
41
|
+
case "development":
|
|
42
|
+
terminalColor = color_service_provider_1.ColorStyle.Yellow;
|
|
43
|
+
break;
|
|
44
|
+
case "staging":
|
|
45
|
+
terminalColor = color_service_provider_1.ColorStyle.Blue;
|
|
46
|
+
break;
|
|
47
|
+
case "production":
|
|
48
|
+
terminalColor = color_service_provider_1.ColorStyle.Green;
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
terminalColor = color_service_provider_1.ColorStyle.Red;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
this.printColor(`${appConsoleMessage.appName} version ${appConsoleMessage.appVersion} is running on ` +
|
|
55
|
+
`port ${port} - Environment: ${environment}`, terminalColor);
|
|
69
56
|
}
|
|
70
57
|
};
|
|
71
58
|
exports.Console = Console;
|
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
var BaseController_1;
|
|
18
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
10
|
exports.BaseController = void 0;
|
|
@@ -30,10 +21,8 @@ let BaseController = BaseController_1 = class BaseController {
|
|
|
30
21
|
* @param res - The Express response object.
|
|
31
22
|
* @param successStatusCode - The HTTP status code to return upon successful execution.
|
|
32
23
|
*/
|
|
33
|
-
callUseCaseAsync(useCase, res, successStatusCode) {
|
|
34
|
-
return
|
|
35
|
-
return res.status(successStatusCode).json(yield useCase);
|
|
36
|
-
});
|
|
24
|
+
async callUseCaseAsync(useCase, res, successStatusCode) {
|
|
25
|
+
return res.status(successStatusCode).json(await useCase);
|
|
37
26
|
}
|
|
38
27
|
/**
|
|
39
28
|
* Calls a use case and sends an appropriate response based on the result.
|
|
@@ -11,6 +11,17 @@ exports.AppError = void 0;
|
|
|
11
11
|
* @extends {Error}
|
|
12
12
|
*/
|
|
13
13
|
class AppError extends Error {
|
|
14
|
+
/**
|
|
15
|
+
* The HTTP status code associated with the error.
|
|
16
|
+
* Commonly used to define the HTTP response status code.
|
|
17
|
+
*/
|
|
18
|
+
statusCode;
|
|
19
|
+
/**
|
|
20
|
+
* The service identifier associated with the error.
|
|
21
|
+
* This property can be used to trace the origin of the error in the application.
|
|
22
|
+
* It is optional and can be left undefined.
|
|
23
|
+
*/
|
|
24
|
+
service;
|
|
14
25
|
/**
|
|
15
26
|
* @param {string} message - The error message to be displayed.
|
|
16
27
|
* @param {number} [statusCode=500] - The HTTP status code associated with the error (default: 500).
|
package/lib/cjs/error/report.js
CHANGED
|
@@ -19,7 +19,10 @@ const app_error_1 = require("./app-error");
|
|
|
19
19
|
* It is responsible for creating a standardized error object, logging it,
|
|
20
20
|
* and then throwing the error for further handling.
|
|
21
21
|
*/
|
|
22
|
-
let Report =
|
|
22
|
+
let Report = class Report {
|
|
23
|
+
static { Report_1 = this; }
|
|
24
|
+
static stack;
|
|
25
|
+
logger;
|
|
23
26
|
constructor() {
|
|
24
27
|
this.logger = new logger_service_1.Logger();
|
|
25
28
|
}
|
|
@@ -78,6 +78,12 @@ var ServerErrorResponse;
|
|
|
78
78
|
ServerErrorResponse[ServerErrorResponse["NotExtended"] = 510] = "NotExtended";
|
|
79
79
|
ServerErrorResponse[ServerErrorResponse["NetworkAuthenticationRequired"] = 511] = "NetworkAuthenticationRequired";
|
|
80
80
|
})(ServerErrorResponse || (ServerErrorResponse = {}));
|
|
81
|
-
const HttpStatusErrorCode =
|
|
82
|
-
|
|
81
|
+
const HttpStatusErrorCode = {
|
|
82
|
+
...InformationResponse,
|
|
83
|
+
...SuccessfulResponse,
|
|
84
|
+
...RedirectionMessage,
|
|
85
|
+
...ClientErrorResponse,
|
|
86
|
+
...ServerErrorResponse,
|
|
87
|
+
};
|
|
88
|
+
const StatusCode = { ...HttpStatusErrorCode };
|
|
83
89
|
exports.StatusCode = StatusCode;
|
|
@@ -9,22 +9,24 @@ const logger_service_1 = require("../provider/logger/logger-service");
|
|
|
9
9
|
* an informative message.
|
|
10
10
|
*/
|
|
11
11
|
class MiddlewareResolver {
|
|
12
|
+
logger;
|
|
12
13
|
constructor() {
|
|
13
|
-
/**
|
|
14
|
-
* A registry object mapping middleware names to their corresponding package names.
|
|
15
|
-
* It is used to identify and require the middleware from the current working directory.
|
|
16
|
-
*/
|
|
17
|
-
this.middlewareRegistry = {
|
|
18
|
-
cors: "cors",
|
|
19
|
-
compression: "compression",
|
|
20
|
-
cookieParser: "cookie-parser",
|
|
21
|
-
cookieSession: "cookie-session",
|
|
22
|
-
serveFavicon: "serve-favicon",
|
|
23
|
-
morgan: "morgan",
|
|
24
|
-
// Add other middlewares
|
|
25
|
-
};
|
|
26
14
|
this.logger = new logger_service_1.Logger();
|
|
27
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* A registry object mapping middleware names to their corresponding package names.
|
|
18
|
+
* It is used to identify and require the middleware from the current working directory.
|
|
19
|
+
*/
|
|
20
|
+
middlewareRegistry = {
|
|
21
|
+
cors: "cors",
|
|
22
|
+
compression: "compression",
|
|
23
|
+
cookieParser: "cookie-parser",
|
|
24
|
+
cookieSession: "cookie-session",
|
|
25
|
+
serveFavicon: "serve-favicon",
|
|
26
|
+
morgan: "morgan",
|
|
27
|
+
rateLimit: "express-rate-limit",
|
|
28
|
+
// Add other middlewares
|
|
29
|
+
};
|
|
28
30
|
/**
|
|
29
31
|
* Retrieves a middleware by its name and optionally configures it with provided options.
|
|
30
32
|
*
|
|
@@ -24,10 +24,9 @@ const middleware_resolver_1 = require("./middleware-resolver");
|
|
|
24
24
|
* @see IConfigure
|
|
25
25
|
*/
|
|
26
26
|
let Middleware = Middleware_1 = class Middleware {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
27
|
+
middlewarePipeline = [];
|
|
28
|
+
errorHandler;
|
|
29
|
+
logger = new logger_service_1.Logger();
|
|
31
30
|
/**
|
|
32
31
|
* Checks if a middleware with the given name exists in the middleware collection.
|
|
33
32
|
*
|
|
@@ -36,14 +35,21 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
36
35
|
* @returns A boolean value indicating whether the middleware exists or not.
|
|
37
36
|
*/
|
|
38
37
|
middlewareExists(middlewareName) {
|
|
39
|
-
const middlewareIndex = this.middlewarePipeline.findIndex((m) =>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
? m.middleware.middlewares.some((mw) => (mw === null || mw === void 0 ? void 0 : mw.name) === middlewareName)
|
|
43
|
-
: ((_a = m.middleware) === null || _a === void 0 ? void 0 : _a.name) === middlewareName;
|
|
44
|
-
});
|
|
38
|
+
const middlewareIndex = this.middlewarePipeline.findIndex((m) => typeof m.middleware === "object"
|
|
39
|
+
? m.middleware.middlewares.some((mw) => mw?.name === middlewareName)
|
|
40
|
+
: m.middleware?.name === middlewareName);
|
|
45
41
|
return middlewareIndex !== -1;
|
|
46
42
|
}
|
|
43
|
+
addRateLimiter(options) {
|
|
44
|
+
const middleware = (0, middleware_resolver_1.middlewareResolver)("rateLimit", options);
|
|
45
|
+
const middlewareExist = this.middlewareExists("rateLimit");
|
|
46
|
+
if (middleware && !middlewareExist) {
|
|
47
|
+
this.middlewarePipeline.push({
|
|
48
|
+
timestamp: new Date(),
|
|
49
|
+
middleware,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
47
53
|
/**
|
|
48
54
|
* Adds a Body Parser middleware to the middleware collection using the given options.
|
|
49
55
|
*
|
|
@@ -223,7 +229,7 @@ let Middleware = Middleware_1 = class Middleware {
|
|
|
223
229
|
}
|
|
224
230
|
else {
|
|
225
231
|
config.middlewares.forEach((m) => {
|
|
226
|
-
const middlewareName =
|
|
232
|
+
const middlewareName = m?.name || "anonymous";
|
|
227
233
|
const middlewareExist = this.middlewareExists(middlewareName);
|
|
228
234
|
if (middlewareExist) {
|
|
229
235
|
this.logger.warn(`[${middlewareName}] already exists. Skipping...`, "configure-service");
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ValidateDTO = void 0;
|
|
13
4
|
require("reflect-metadata");
|
|
@@ -22,7 +13,7 @@ const logger_service_1 = require("../logger/logger-service");
|
|
|
22
13
|
*
|
|
23
14
|
*/
|
|
24
15
|
function ValidateDTO(type) {
|
|
25
|
-
return (req, res, next) =>
|
|
16
|
+
return async (req, res, next) => {
|
|
26
17
|
const logger = new logger_service_1.Logger();
|
|
27
18
|
const classValidator = (0, package_resolver_provider_1.packageResolver)("class-validator");
|
|
28
19
|
const classTransformer = (0, package_resolver_provider_1.packageResolver)("class-transformer");
|
|
@@ -30,7 +21,7 @@ function ValidateDTO(type) {
|
|
|
30
21
|
return next();
|
|
31
22
|
}
|
|
32
23
|
try {
|
|
33
|
-
const errors =
|
|
24
|
+
const errors = await classValidator.validate(classTransformer.plainToClass(type, req.body));
|
|
34
25
|
if (errors.length > 0) {
|
|
35
26
|
const DTO = errors.reduce((acc, error) => {
|
|
36
27
|
if (error.constraints) {
|
|
@@ -57,6 +48,6 @@ function ValidateDTO(type) {
|
|
|
57
48
|
logger.error(`An exception occurred while validating the DTO: ${error}`, "validate-dto-provider");
|
|
58
49
|
next(error);
|
|
59
50
|
}
|
|
60
|
-
}
|
|
51
|
+
};
|
|
61
52
|
}
|
|
62
53
|
exports.ValidateDTO = ValidateDTO;
|
|
@@ -25,6 +25,7 @@ const logger_service_1 = require("../logger/logger-service");
|
|
|
25
25
|
* @provide EnvValidatorProvider
|
|
26
26
|
*/
|
|
27
27
|
let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
|
|
28
|
+
logger;
|
|
28
29
|
constructor() {
|
|
29
30
|
this.logger = new logger_service_1.Logger();
|
|
30
31
|
}
|
|
@@ -35,8 +36,7 @@ let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
|
|
|
35
36
|
* @returns The value of the environment variable, or the default value if not set.
|
|
36
37
|
*/
|
|
37
38
|
get(key, defaultValue = undefined) {
|
|
38
|
-
|
|
39
|
-
return (_a = process.env[key]) !== null && _a !== void 0 ? _a : defaultValue;
|
|
39
|
+
return process.env[key] ?? defaultValue;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Validates and loads all environment variables from the .env file.
|
|
@@ -21,6 +21,8 @@ const env_validator_provider_1 = require("./environment/env-validator.provider")
|
|
|
21
21
|
* singleton provider to ensure a single instance is reused.
|
|
22
22
|
*/
|
|
23
23
|
let Provider = Provider_1 = class Provider {
|
|
24
|
+
envValidator;
|
|
25
|
+
logger;
|
|
24
26
|
/**
|
|
25
27
|
* Initializes the instances of the various providers.
|
|
26
28
|
*/
|
|
@@ -31,7 +31,7 @@ declare abstract class BaseController implements Controller {
|
|
|
31
31
|
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
32
32
|
*
|
|
33
33
|
*/
|
|
34
|
-
protected callUseRender(res: Response, template: string, options?:
|
|
34
|
+
protected callUseRender(res: Response, template: string, options?: object): void;
|
|
35
35
|
/**
|
|
36
36
|
* Asynchronously renders a template with the given options using the Express `Response` object's render method.
|
|
37
37
|
*
|
|
@@ -43,7 +43,6 @@ declare abstract class BaseController implements Controller {
|
|
|
43
43
|
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
44
44
|
*
|
|
45
45
|
*/
|
|
46
|
-
protected callUseRenderAsync(res: Response, template: string, options?:
|
|
46
|
+
protected callUseRenderAsync(res: Response, template: string, options?: object): Promise<string>;
|
|
47
47
|
}
|
|
48
48
|
export { BaseController };
|
|
49
|
-
//# sourceMappingURL=base-controller.d.ts.map
|
package/lib/cjs/types/index.d.ts
CHANGED