@expressots/core 1.8.1 → 1.9.1
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 +33 -10
- package/lib/cjs/application/application-factory.js +83 -0
- package/lib/cjs/application/index.js +3 -5
- package/lib/cjs/common/color-service.provider.js +46 -0
- package/lib/cjs/common/package-resolver.provider.js +35 -0
- package/lib/cjs/console/console.js +10 -33
- package/lib/cjs/controller/base-controller.js +1 -14
- package/lib/cjs/decorator/scope-binding.js +30 -0
- package/lib/cjs/error/report.js +14 -5
- package/lib/cjs/index.js +2 -2
- package/lib/cjs/middleware/index.js +5 -0
- package/lib/cjs/middleware/interfaces/body-parser.interface.js +2 -0
- package/lib/cjs/middleware/interfaces/compression.interface.js +2 -0
- package/lib/cjs/middleware/interfaces/cors.interface.js +2 -0
- package/lib/cjs/middleware/interfaces/serve-static.interface.js +2 -0
- package/lib/cjs/middleware/middleware-resolver.js +67 -0
- package/lib/cjs/middleware/middleware-service.js +145 -0
- package/lib/cjs/provider/dto-validator/dto-validator.provider.js +62 -0
- package/lib/cjs/{environment/env-validator.js → provider/environment/env-validator.provider.js} +16 -10
- package/lib/cjs/provider/index.js +11 -0
- package/lib/cjs/provider/logger/logger-service.js +114 -0
- package/lib/cjs/provider/provider-service.js +36 -0
- package/lib/cjs/types/application/application-factory.d.ts +34 -0
- package/lib/cjs/types/application/application-factory.d.ts.map +1 -0
- package/lib/cjs/types/application/index.d.ts +1 -1
- package/lib/cjs/types/application/index.d.ts.map +1 -1
- package/lib/cjs/types/common/color-service.provider.d.ts +30 -0
- package/lib/cjs/types/common/color-service.provider.d.ts.map +1 -0
- package/lib/cjs/types/common/package-resolver.provider.d.ts +9 -0
- package/lib/cjs/types/common/package-resolver.provider.d.ts.map +1 -0
- package/lib/cjs/types/console/console.d.ts +1 -1
- package/lib/cjs/types/console/console.d.ts.map +1 -1
- package/lib/cjs/types/controller/base-controller.d.ts +4 -10
- package/lib/cjs/types/controller/base-controller.d.ts.map +1 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts +30 -0
- package/lib/cjs/types/decorator/scope-binding.d.ts.map +1 -1
- package/lib/cjs/types/error/report.d.ts +5 -3
- package/lib/cjs/types/error/report.d.ts.map +1 -1
- package/lib/cjs/types/index.d.ts +2 -2
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/cjs/types/middleware/index.d.ts +5 -0
- package/lib/cjs/types/middleware/index.d.ts.map +1 -0
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +34 -0
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts.map +1 -0
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +99 -0
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts.map +1 -0
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +58 -0
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts.map +1 -0
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +71 -0
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts.map +1 -0
- package/lib/cjs/types/middleware/middleware-resolver.d.ts +12 -0
- package/lib/cjs/types/middleware/middleware-resolver.d.ts.map +1 -0
- package/lib/cjs/types/middleware/middleware-service.d.ts +137 -0
- package/lib/cjs/types/middleware/middleware-service.d.ts.map +1 -0
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +12 -0
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts.map +1 -0
- package/lib/cjs/types/{environment/env-validator.d.ts → provider/environment/env-validator.provider.d.ts} +7 -4
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts.map +1 -0
- package/lib/cjs/types/provider/index.d.ts +5 -0
- package/lib/cjs/types/provider/index.d.ts.map +1 -0
- package/lib/cjs/types/provider/logger/logger-service.d.ts +50 -0
- package/lib/cjs/types/provider/logger/logger-service.d.ts.map +1 -0
- package/lib/{esm/types/logger/general-logger.d.ts → cjs/types/provider/logger/winston-logger.d.ts} +1 -1
- package/lib/cjs/types/provider/logger/winston-logger.d.ts.map +1 -0
- package/lib/cjs/types/provider/provider-service.d.ts +31 -0
- package/lib/cjs/types/provider/provider-service.d.ts.map +1 -0
- package/lib/esm/application/application-factory.js +72 -0
- package/lib/esm/application/index.js +3 -5
- package/lib/esm/common/color-service.provider.js +46 -0
- package/lib/esm/common/package-resolver.provider.js +35 -0
- package/lib/esm/console/console.js +10 -33
- package/lib/esm/controller/base-controller.js +1 -15
- package/lib/esm/decorator/scope-binding.js +30 -0
- package/lib/esm/error/report.js +15 -5
- package/lib/esm/index.mjs +2 -2
- package/lib/esm/middleware/index.js +5 -0
- package/lib/esm/middleware/interfaces/body-parser.interface.js +2 -0
- package/lib/esm/middleware/interfaces/compression.interface.js +2 -0
- package/lib/esm/middleware/interfaces/cors.interface.js +2 -0
- package/lib/esm/middleware/interfaces/serve-static.interface.js +2 -0
- package/lib/esm/middleware/middleware-resolver.js +68 -0
- package/lib/esm/middleware/middleware-service.js +144 -0
- package/lib/esm/provider/dto-validator/dto-validator.provider.js +53 -0
- package/lib/esm/{environment/env-validator.js → provider/environment/env-validator.provider.js} +17 -10
- package/lib/esm/provider/index.js +11 -0
- package/lib/esm/provider/logger/logger-service.js +115 -0
- package/lib/esm/provider/provider-service.js +38 -0
- package/lib/esm/types/application/application-factory.d.ts +34 -0
- package/lib/esm/types/application/application-factory.d.ts.map +1 -0
- package/lib/esm/types/application/index.d.ts +1 -1
- package/lib/esm/types/application/index.d.ts.map +1 -1
- package/lib/esm/types/common/color-service.provider.d.ts +30 -0
- package/lib/esm/types/common/color-service.provider.d.ts.map +1 -0
- package/lib/esm/types/common/package-resolver.provider.d.ts +9 -0
- package/lib/esm/types/common/package-resolver.provider.d.ts.map +1 -0
- package/lib/esm/types/console/console.d.ts +1 -1
- package/lib/esm/types/console/console.d.ts.map +1 -1
- package/lib/esm/types/controller/base-controller.d.ts +4 -10
- package/lib/esm/types/controller/base-controller.d.ts.map +1 -1
- package/lib/esm/types/decorator/scope-binding.d.ts +30 -0
- package/lib/esm/types/decorator/scope-binding.d.ts.map +1 -1
- package/lib/esm/types/error/report.d.ts +5 -3
- package/lib/esm/types/error/report.d.ts.map +1 -1
- package/lib/esm/types/index.d.ts +2 -2
- package/lib/esm/types/index.d.ts.map +1 -1
- package/lib/esm/types/middleware/index.d.ts +5 -0
- package/lib/esm/types/middleware/index.d.ts.map +1 -0
- package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts +34 -0
- package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts.map +1 -0
- package/lib/esm/types/middleware/interfaces/compression.interface.d.ts +99 -0
- package/lib/esm/types/middleware/interfaces/compression.interface.d.ts.map +1 -0
- package/lib/esm/types/middleware/interfaces/cors.interface.d.ts +58 -0
- package/lib/esm/types/middleware/interfaces/cors.interface.d.ts.map +1 -0
- package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts +71 -0
- package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts.map +1 -0
- package/lib/esm/types/middleware/middleware-resolver.d.ts +12 -0
- package/lib/esm/types/middleware/middleware-resolver.d.ts.map +1 -0
- package/lib/esm/types/middleware/middleware-service.d.ts +137 -0
- package/lib/esm/types/middleware/middleware-service.d.ts.map +1 -0
- package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +12 -0
- package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts.map +1 -0
- package/lib/esm/types/{environment/env-validator.d.ts → provider/environment/env-validator.provider.d.ts} +7 -4
- package/lib/esm/types/provider/environment/env-validator.provider.d.ts.map +1 -0
- package/lib/esm/types/provider/index.d.ts +5 -0
- package/lib/esm/types/provider/index.d.ts.map +1 -0
- package/lib/esm/types/provider/logger/logger-service.d.ts +50 -0
- package/lib/esm/types/provider/logger/logger-service.d.ts.map +1 -0
- package/lib/{cjs/types/logger/general-logger.d.ts → esm/types/provider/logger/winston-logger.d.ts} +1 -1
- package/lib/esm/types/provider/logger/winston-logger.d.ts.map +1 -0
- package/lib/esm/types/provider/provider-service.d.ts +31 -0
- package/lib/esm/types/provider/provider-service.d.ts.map +1 -0
- package/lib/package.json +7 -4
- package/package.json +7 -4
- package/lib/cjs/application/application.js +0 -141
- package/lib/cjs/environment/index.js +0 -5
- package/lib/cjs/logger/index.js +0 -7
- package/lib/cjs/types/application/application.d.ts +0 -70
- package/lib/cjs/types/application/application.d.ts.map +0 -1
- package/lib/cjs/types/environment/env-validator.d.ts.map +0 -1
- package/lib/cjs/types/environment/index.d.ts +0 -2
- package/lib/cjs/types/environment/index.d.ts.map +0 -1
- package/lib/cjs/types/logger/general-logger.d.ts.map +0 -1
- package/lib/cjs/types/logger/index.d.ts +0 -2
- package/lib/cjs/types/logger/index.d.ts.map +0 -1
- package/lib/esm/application/application.js +0 -144
- package/lib/esm/environment/index.js +0 -5
- package/lib/esm/logger/index.js +0 -7
- package/lib/esm/types/application/application.d.ts +0 -70
- package/lib/esm/types/application/application.d.ts.map +0 -1
- package/lib/esm/types/environment/env-validator.d.ts.map +0 -1
- package/lib/esm/types/environment/index.d.ts +0 -2
- package/lib/esm/types/environment/index.d.ts.map +0 -1
- package/lib/esm/types/logger/general-logger.d.ts.map +0 -1
- package/lib/esm/types/logger/index.d.ts +0 -2
- package/lib/esm/types/logger/index.d.ts.map +0 -1
- /package/lib/cjs/{logger/general-logger.js → provider/logger/winston-logger.js} +0 -0
- /package/lib/esm/{logger/general-logger.js → provider/logger/winston-logger.js} +0 -0
package/lib/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
## [1.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
###
|
|
7
|
-
|
|
8
|
-
* add
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
## [1.9.0](https://github.com/expressots/expressots/compare/1.8.1...1.9.0) (2023-09-12)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add pck resolver & remove chalk dependency ([6bbd415](https://github.com/expressots/expressots/commit/6bbd415937159e419116b6ade8f9852c3251fbf4))
|
|
9
|
+
* bump vitest from 0.34.3 to 0.34.4 ([#92](https://github.com/expressots/expressots/issues/92)) ([89dc682](https://github.com/expressots/expressots/commit/89dc682c7047897f01fd7770591b6ffea689d137))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* disable console.spec to be refactored ([22a54bd](https://github.com/expressots/expressots/commit/22a54bdb7f0c2032d3b0e0f935ce48d73e665e84))
|
|
15
|
+
* dto validator json structure per property ([a8fbe40](https://github.com/expressots/expressots/commit/a8fbe409647140e867f930a882fd395df45d6de7))
|
|
16
|
+
* export console for testing ([d3f2c07](https://github.com/expressots/expressots/commit/d3f2c07ca2df0176fabed04172ce4ff684c91c9c))
|
|
17
|
+
* opinionated template logger.error function ([073f4e1](https://github.com/expressots/expressots/commit/073f4e154732fa3fed9492ec772c36894bc3cf48))
|
|
18
|
+
* replace dto interface for class opinionated template ([3e99d7c](https://github.com/expressots/expressots/commit/3e99d7c5492ff64701e754ec845a0410da442296))
|
|
19
|
+
* use new report utility in usecases ([#91](https://github.com/expressots/expressots/issues/91)) ([d1477b2](https://github.com/expressots/expressots/commit/d1477b24f932e354fb55373e8e73fe9155289486))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Code Refactoring
|
|
23
|
+
|
|
24
|
+
* update type from any to number ([#90](https://github.com/expressots/expressots/issues/90)) ([5e34a44](https://github.com/expressots/expressots/commit/5e34a44d8bd353b8d3834f198f36bf73aa521845))
|
|
25
|
+
|
|
26
|
+
## [1.8.1](https://github.com/expressots/expressots/compare/1.8.0...1.8.1) (2023-09-10)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* add generic in memory db and virtual table analysis ([#86](https://github.com/expressots/expressots/issues/86)) ([29541f9](https://github.com/expressots/expressots/commit/29541f997e47c8ac5f8cafbb0195c34c904454f4))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Continuous Integrations
|
|
35
|
+
|
|
13
36
|
* config test workflow and setup vitest ([#88](https://github.com/expressots/expressots/issues/88)) ([67316ce](https://github.com/expressots/expressots/commit/67316cece977f04f9750a5a5af6cd88dfc695e0d))
|
|
14
37
|
|
|
15
38
|
## [1.8.0](https://github.com/expressots/expressots/compare/1.7.0...1.8.0) (2023-09-05)
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AppFactory = void 0;
|
|
13
|
+
const logger_service_1 = require("../provider/logger/logger-service");
|
|
14
|
+
const adapter_express_1 = require("@expressots/adapter-express");
|
|
15
|
+
//import { AppFastify } from "./fastify/application-fastify";
|
|
16
|
+
//import { IApplicationFastify } from "./fastify/application-fastify.interface";
|
|
17
|
+
//import { Handler } from "@fastify/middie";
|
|
18
|
+
/**
|
|
19
|
+
* AppFactory Class
|
|
20
|
+
*
|
|
21
|
+
* Responsible for creating an instance of the Application,
|
|
22
|
+
* either using a custom application type or with provided middlewares.
|
|
23
|
+
*/
|
|
24
|
+
class AppFactory {
|
|
25
|
+
/* public static async create(
|
|
26
|
+
container: Container,
|
|
27
|
+
middlewares: Array<express.RequestHandler>,
|
|
28
|
+
httpServerFactory?: new () => AppFastify,
|
|
29
|
+
): Promise<AppFastify>; */
|
|
30
|
+
/**
|
|
31
|
+
* Implementation of the create method, handling both overloads.
|
|
32
|
+
* @param container - InversifyJS container to resolve dependencies.
|
|
33
|
+
* @param appTypeOrMiddlewares - Custom application class or array of middlewares.
|
|
34
|
+
* @returns Instance of the application.
|
|
35
|
+
*/
|
|
36
|
+
static create(container, appTypeOrMiddlewares, httpServerFactory /*| AppFastify*/) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
let app /*| AppFastify*/ = {}; /*| AppFastify*/
|
|
39
|
+
if (this.isOpinionated(appTypeOrMiddlewares)) {
|
|
40
|
+
switch (httpServerFactory) {
|
|
41
|
+
case adapter_express_1.AppExpress:
|
|
42
|
+
app = container.resolve(appTypeOrMiddlewares);
|
|
43
|
+
app.create(container);
|
|
44
|
+
return app;
|
|
45
|
+
/* case AppFastify:
|
|
46
|
+
app = container.resolve(appTypeOrMiddlewares as new () => AppFastify);
|
|
47
|
+
await app.create(container);
|
|
48
|
+
return app as IApplicationFastify; */
|
|
49
|
+
default:
|
|
50
|
+
app = container.resolve(appTypeOrMiddlewares);
|
|
51
|
+
app.create(container);
|
|
52
|
+
return app;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
switch (httpServerFactory) {
|
|
57
|
+
case adapter_express_1.AppExpress:
|
|
58
|
+
app = container.get(adapter_express_1.AppExpress);
|
|
59
|
+
app.create(container, appTypeOrMiddlewares);
|
|
60
|
+
return app;
|
|
61
|
+
/* case AppFastify:
|
|
62
|
+
app = container.get<AppFastify>(AppFastify);
|
|
63
|
+
await app.create(container, appTypeOrMiddlewares as Array<Handler>);
|
|
64
|
+
return app as AppFastify; */
|
|
65
|
+
default:
|
|
66
|
+
app = container.get(adapter_express_1.AppExpress);
|
|
67
|
+
app.create(container, appTypeOrMiddlewares);
|
|
68
|
+
return app;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Checks if the provided parameter is a custom application type.
|
|
75
|
+
* @param appTypeOrMiddlewares - Custom application class or array of middlewares.
|
|
76
|
+
* @returns True if the provided parameter is a custom application type.
|
|
77
|
+
*/
|
|
78
|
+
static isOpinionated(appTypeOrMiddlewares) {
|
|
79
|
+
return typeof appTypeOrMiddlewares === "function";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.AppFactory = AppFactory;
|
|
83
|
+
AppFactory.logger = new logger_service_1.Logger();
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var application_1 = require("./application");
|
|
5
|
-
Object.defineProperty(exports, "AppInstance", { enumerable: true, get: function () { return application_1.AppInstance; } });
|
|
6
|
-
Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_1.Application; } });
|
|
7
|
-
Object.defineProperty(exports, "ServerEnvironment", { enumerable: true, get: function () { return application_1.ServerEnvironment; } });
|
|
3
|
+
exports.AppFactory = exports.AppContainer = void 0;
|
|
8
4
|
var app_container_1 = require("./app-container");
|
|
9
5
|
Object.defineProperty(exports, "AppContainer", { enumerable: true, get: function () { return app_container_1.AppContainer; } });
|
|
6
|
+
var application_factory_1 = require("./application-factory");
|
|
7
|
+
Object.defineProperty(exports, "AppFactory", { enumerable: true, get: function () { return application_factory_1.AppFactory; } });
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bgColorCodes = exports.colorCodes = exports.ColorStyle = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Mapping of text color codes.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Defines the ANSI escape codes for the corresponding colors in the terminal.
|
|
9
|
+
*/
|
|
10
|
+
const colorCodes = {
|
|
11
|
+
red: "\x1b[31m",
|
|
12
|
+
green: "\x1b[32m",
|
|
13
|
+
yellow: "\x1b[33m",
|
|
14
|
+
blue: "\x1b[34m",
|
|
15
|
+
white: "\x1b[37m",
|
|
16
|
+
black: "\x1b[30m",
|
|
17
|
+
none: "\x1b[0m",
|
|
18
|
+
};
|
|
19
|
+
exports.colorCodes = colorCodes;
|
|
20
|
+
/**
|
|
21
|
+
* ANSI escape color codes mapping for different background colors.
|
|
22
|
+
*/
|
|
23
|
+
const bgColorCodes = {
|
|
24
|
+
red: "\x1b[41m",
|
|
25
|
+
green: "\x1b[42m",
|
|
26
|
+
yellow: "\x1b[43m",
|
|
27
|
+
blue: "\x1b[44m",
|
|
28
|
+
white: "\x1b[47m",
|
|
29
|
+
black: "\x1b[40m",
|
|
30
|
+
none: "\x1b[0m",
|
|
31
|
+
};
|
|
32
|
+
exports.bgColorCodes = bgColorCodes;
|
|
33
|
+
/**
|
|
34
|
+
* Enum representing possible color styles for console output.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Enum values correspond to the string representations of colors.
|
|
38
|
+
*/
|
|
39
|
+
var ColorStyle;
|
|
40
|
+
(function (ColorStyle) {
|
|
41
|
+
ColorStyle["None"] = "none";
|
|
42
|
+
ColorStyle["Yellow"] = "yellow";
|
|
43
|
+
ColorStyle["Blue"] = "blue";
|
|
44
|
+
ColorStyle["Green"] = "green";
|
|
45
|
+
ColorStyle["Red"] = "red";
|
|
46
|
+
})(ColorStyle || (exports.ColorStyle = ColorStyle = {}));
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.packageResolver = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
+
const logger_service_1 = require("../provider/logger/logger-service");
|
|
6
|
+
/**
|
|
7
|
+
* Resolve package from the current working directory.
|
|
8
|
+
* @param packageName
|
|
9
|
+
* @param options
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function packageResolver(packageName, ...options) {
|
|
13
|
+
const logger = new logger_service_1.Logger();
|
|
14
|
+
try {
|
|
15
|
+
const hasPackage = require.resolve(packageName, {
|
|
16
|
+
paths: [process.cwd()],
|
|
17
|
+
});
|
|
18
|
+
if (hasPackage) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
20
|
+
const packageResolved = require(hasPackage);
|
|
21
|
+
if (typeof packageResolved === "function") {
|
|
22
|
+
return packageResolved(...options);
|
|
23
|
+
}
|
|
24
|
+
if (packageResolved.default &&
|
|
25
|
+
typeof packageResolved.default === "function") {
|
|
26
|
+
return packageResolved.default(...options);
|
|
27
|
+
}
|
|
28
|
+
return packageResolved;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
logger.warn(`Package [${packageName}] not installed. Please install it using your package manager.`, "package-resolver");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.packageResolver = packageResolver;
|
|
@@ -14,25 +14,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
14
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
15
|
});
|
|
16
16
|
};
|
|
17
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
17
|
var Console_1;
|
|
21
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
19
|
exports.Console = void 0;
|
|
23
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
24
20
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
25
|
-
|
|
26
|
-
* Enum representing possible color styles for console output.
|
|
27
|
-
*/
|
|
28
|
-
var ColorStyle;
|
|
29
|
-
(function (ColorStyle) {
|
|
30
|
-
ColorStyle[ColorStyle["None"] = 0] = "None";
|
|
31
|
-
ColorStyle[ColorStyle["Yellow"] = 1] = "Yellow";
|
|
32
|
-
ColorStyle[ColorStyle["Blue"] = 2] = "Blue";
|
|
33
|
-
ColorStyle[ColorStyle["Green"] = 3] = "Green";
|
|
34
|
-
ColorStyle[ColorStyle["Red"] = 4] = "Red";
|
|
35
|
-
})(ColorStyle || (ColorStyle = {}));
|
|
21
|
+
const color_service_provider_1 = require("../common/color-service.provider");
|
|
36
22
|
/**
|
|
37
23
|
* The Console class provides methods for displaying styled messages in the console.
|
|
38
24
|
* @provide Console
|
|
@@ -45,16 +31,9 @@ let Console = Console_1 = class Console {
|
|
|
45
31
|
*/
|
|
46
32
|
printColor(message, colorStyle) {
|
|
47
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
case ColorStyle.Blue:
|
|
52
|
-
return console.log(chalk_1.default.bgBlue.black(message));
|
|
53
|
-
case ColorStyle.Green:
|
|
54
|
-
return console.log(chalk_1.default.bgGreen.black(message));
|
|
55
|
-
case ColorStyle.Red:
|
|
56
|
-
return console.log(chalk_1.default.bgRed.black(message));
|
|
57
|
-
}
|
|
34
|
+
const textColor = "black";
|
|
35
|
+
const bgColor = colorStyle;
|
|
36
|
+
console.log(`${color_service_provider_1.bgColorCodes[bgColor]}${color_service_provider_1.colorCodes[textColor]}${message}\x1b[0m`);
|
|
58
37
|
});
|
|
59
38
|
}
|
|
60
39
|
/**
|
|
@@ -63,27 +42,25 @@ let Console = Console_1 = class Console {
|
|
|
63
42
|
* @param environment - The server environment.
|
|
64
43
|
* @param consoleMessage - Optional application message details for console output.
|
|
65
44
|
*/
|
|
66
|
-
messageServer(
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
-
port, environment, consoleMessage) {
|
|
45
|
+
messageServer(port, environment, consoleMessage) {
|
|
69
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
47
|
const appConsoleMessage = {
|
|
71
48
|
appName: (consoleMessage === null || consoleMessage === void 0 ? void 0 : consoleMessage.appName) || "Application",
|
|
72
49
|
appVersion: (consoleMessage === null || consoleMessage === void 0 ? void 0 : consoleMessage.appVersion) || "not provided",
|
|
73
50
|
};
|
|
74
|
-
let terminalColor = ColorStyle.None;
|
|
51
|
+
let terminalColor = color_service_provider_1.ColorStyle.None;
|
|
75
52
|
switch (environment.toLowerCase()) {
|
|
76
53
|
case "development":
|
|
77
|
-
terminalColor = ColorStyle.Yellow;
|
|
54
|
+
terminalColor = color_service_provider_1.ColorStyle.Yellow;
|
|
78
55
|
break;
|
|
79
56
|
case "staging":
|
|
80
|
-
terminalColor = ColorStyle.Blue;
|
|
57
|
+
terminalColor = color_service_provider_1.ColorStyle.Blue;
|
|
81
58
|
break;
|
|
82
59
|
case "production":
|
|
83
|
-
terminalColor = ColorStyle.Green;
|
|
60
|
+
terminalColor = color_service_provider_1.ColorStyle.Green;
|
|
84
61
|
break;
|
|
85
62
|
default:
|
|
86
|
-
terminalColor = ColorStyle.Red;
|
|
63
|
+
terminalColor = color_service_provider_1.ColorStyle.Red;
|
|
87
64
|
break;
|
|
88
65
|
}
|
|
89
66
|
this.printColor(`${appConsoleMessage.appName} version ${appConsoleMessage.appVersion} is running on ` +
|
|
@@ -5,9 +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 __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
8
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
9
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
10
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -21,20 +18,12 @@ var BaseController_1;
|
|
|
21
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
19
|
exports.BaseController = void 0;
|
|
23
20
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
24
|
-
const logger_1 = require("../logger");
|
|
25
21
|
/**
|
|
26
22
|
* The BaseController class is an abstract base class for controllers.
|
|
27
23
|
* It provides methods for handling use case calls and sending appropriate responses.
|
|
28
24
|
* @provide BaseController
|
|
29
25
|
*/
|
|
30
26
|
let BaseController = BaseController_1 = class BaseController {
|
|
31
|
-
/**
|
|
32
|
-
* Constructs a new BaseController instance with a specified service name.
|
|
33
|
-
* @param serviceName - The name of the service associated with the controller.
|
|
34
|
-
*/
|
|
35
|
-
constructor(serviceName = "") {
|
|
36
|
-
this.serviceName = serviceName;
|
|
37
|
-
}
|
|
38
27
|
/**
|
|
39
28
|
* Calls an asynchronous use case and sends an appropriate response based on the result.
|
|
40
29
|
* @param useCase - A promise representing the asynchronous use case to call.
|
|
@@ -84,7 +73,6 @@ let BaseController = BaseController_1 = class BaseController {
|
|
|
84
73
|
return new Promise((resolve, reject) => {
|
|
85
74
|
res.render(template, options, (err, compiled) => {
|
|
86
75
|
if (err) {
|
|
87
|
-
(0, logger_1.log)(logger_1.LogLevel.Error, err.message, "base-controller");
|
|
88
76
|
reject(err);
|
|
89
77
|
}
|
|
90
78
|
resolve(compiled);
|
|
@@ -94,6 +82,5 @@ let BaseController = BaseController_1 = class BaseController {
|
|
|
94
82
|
};
|
|
95
83
|
exports.BaseController = BaseController;
|
|
96
84
|
exports.BaseController = BaseController = BaseController_1 = __decorate([
|
|
97
|
-
(0, inversify_binding_decorators_1.provide)(BaseController_1)
|
|
98
|
-
__metadata("design:paramtypes", [String])
|
|
85
|
+
(0, inversify_binding_decorators_1.provide)(BaseController_1)
|
|
99
86
|
], BaseController);
|
|
@@ -4,10 +4,40 @@ exports.provideTransient = exports.provideSingleton = void 0;
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
6
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
7
|
+
/**
|
|
8
|
+
* Provides a singleton binding for the given identifier.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Singleton binding ensures that the same instance of a dependency is reused within the entire container.
|
|
12
|
+
*
|
|
13
|
+
* @param identifier - The identifier (e.g., symbol, string, class) for the dependency being registered.
|
|
14
|
+
* @returns A fluent interface for further configuring the binding.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* @provideSingleton(ServiceIdentifier)
|
|
19
|
+
* class MyService {}
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
7
22
|
const provideSingleton = (identifier) => {
|
|
8
23
|
return (0, inversify_binding_decorators_1.fluentProvide)(identifier).inSingletonScope().done();
|
|
9
24
|
};
|
|
10
25
|
exports.provideSingleton = provideSingleton;
|
|
26
|
+
/**
|
|
27
|
+
* Provides a transient binding for the given identifier.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* Transient binding ensures that a new instance of a dependency is created every time it is resolved.
|
|
31
|
+
*
|
|
32
|
+
* @param identifier - The identifier (e.g., symbol, string, class) for the dependency being registered.
|
|
33
|
+
* @returns A fluent interface for further configuring the binding.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* @provideTransient(ServiceIdentifier)
|
|
38
|
+
* class MyService {}
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
11
41
|
const provideTransient = (identifier) => {
|
|
12
42
|
return (0, inversify_binding_decorators_1.fluentProvide)(identifier).inTransientScope().done();
|
|
13
43
|
};
|
package/lib/cjs/error/report.js
CHANGED
|
@@ -5,10 +5,14 @@ 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 __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
var Report_1;
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
13
|
exports.Report = void 0;
|
|
11
14
|
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
15
|
+
const logger_service_1 = require("../provider/logger/logger-service");
|
|
12
16
|
const app_error_1 = require("./app-error");
|
|
13
17
|
/**
|
|
14
18
|
* Report class is a utility class to manage and log errors within the application.
|
|
@@ -16,19 +20,22 @@ const app_error_1 = require("./app-error");
|
|
|
16
20
|
* and then throwing the error for further handling.
|
|
17
21
|
*/
|
|
18
22
|
let Report = Report_1 = class Report {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.logger = new logger_service_1.Logger();
|
|
25
|
+
}
|
|
19
26
|
/**
|
|
20
27
|
* The Error method is responsible for generating a standardized error object,
|
|
21
28
|
* logging the error, and then throwing it for further handling.
|
|
22
|
-
* The error thrown is of the custom type
|
|
29
|
+
* The error thrown is of the custom type AppError, which extends the built-in Error class.
|
|
23
30
|
*
|
|
24
31
|
* @param error - An instance of Error or a string that describes the error.
|
|
25
32
|
* @param statusCode - The HTTP status code associated with the error (default is 500).
|
|
26
33
|
* @param service - The service name associated with the error. If not specified,
|
|
27
34
|
* it defaults to the name of the calling function.
|
|
28
35
|
*
|
|
29
|
-
* @throws An object of the custom type
|
|
36
|
+
* @throws An object of the custom type AppError, which includes details about the error.
|
|
30
37
|
*/
|
|
31
|
-
|
|
38
|
+
error(error, statusCode, service) {
|
|
32
39
|
let appError = {};
|
|
33
40
|
if (error instanceof Error) {
|
|
34
41
|
appError = new app_error_1.AppError(error.message, statusCode, service);
|
|
@@ -36,10 +43,12 @@ let Report = Report_1 = class Report {
|
|
|
36
43
|
else {
|
|
37
44
|
appError = new app_error_1.AppError(error, statusCode, service);
|
|
38
45
|
}
|
|
39
|
-
|
|
46
|
+
this.logger.error(appError.message, appError.service || "service-undefined");
|
|
47
|
+
return appError;
|
|
40
48
|
}
|
|
41
49
|
};
|
|
42
50
|
exports.Report = Report;
|
|
43
51
|
exports.Report = Report = Report_1 = __decorate([
|
|
44
|
-
(0, inversify_binding_decorators_1.provide)(Report_1)
|
|
52
|
+
(0, inversify_binding_decorators_1.provide)(Report_1),
|
|
53
|
+
__metadata("design:paramtypes", [])
|
|
45
54
|
], Report);
|
package/lib/cjs/index.js
CHANGED
|
@@ -20,7 +20,7 @@ __exportStar(require("./console"), exports);
|
|
|
20
20
|
__exportStar(require("./container-module"), exports);
|
|
21
21
|
__exportStar(require("./controller"), exports);
|
|
22
22
|
__exportStar(require("./decorator"), exports);
|
|
23
|
-
__exportStar(require("./environment"), exports);
|
|
24
23
|
__exportStar(require("./error"), exports);
|
|
25
|
-
__exportStar(require("./
|
|
24
|
+
__exportStar(require("./middleware"), exports);
|
|
25
|
+
__exportStar(require("./provider"), exports);
|
|
26
26
|
__exportStar(require("./render"), exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Middleware = void 0;
|
|
4
|
+
var middleware_service_1 = require("./middleware-service");
|
|
5
|
+
Object.defineProperty(exports, "Middleware", { enumerable: true, get: function () { return middleware_service_1.Middleware; } });
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.middlewareResolver = void 0;
|
|
4
|
+
const logger_service_1 = require("../provider/logger/logger-service");
|
|
5
|
+
/**
|
|
6
|
+
* MiddlewareResolver class is responsible for resolving and retrieving Express middlewares
|
|
7
|
+
* by their names. It maintains a registry of available middlewares and provides
|
|
8
|
+
* a method to retrieve them by their name. If a middleware is not installed, it logs
|
|
9
|
+
* an informative message.
|
|
10
|
+
*/
|
|
11
|
+
class MiddlewareResolver {
|
|
12
|
+
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
|
+
// Add other middlewares
|
|
21
|
+
};
|
|
22
|
+
this.logger = new logger_service_1.Logger();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieves a middleware by its name and optionally configures it with provided options.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} middlewareName - The name of the middleware to be retrieved.
|
|
28
|
+
* @param {...any} options - Optional arguments to configure the middleware.
|
|
29
|
+
* @returns {express.RequestHandler | null} - Returns the configured middleware or null if not found or not installed.
|
|
30
|
+
*/
|
|
31
|
+
getMiddleware(middlewareName, ...options) {
|
|
32
|
+
const packageName = this.middlewareRegistry[middlewareName];
|
|
33
|
+
if (!packageName) {
|
|
34
|
+
console.error(`Middleware ${middlewareName} not found`);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
let hasMiddleware = "";
|
|
38
|
+
try {
|
|
39
|
+
hasMiddleware = require.resolve(packageName, { paths: [process.cwd()] });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.logger.warn(`Middleware [${middlewareName}] not installed. Please install it using your package manager.`, "middleware-resolver");
|
|
43
|
+
}
|
|
44
|
+
if (hasMiddleware) {
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
46
|
+
const middleware = require(hasMiddleware);
|
|
47
|
+
return middleware(...options) || middleware.default(...options);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.logger.warn(`Middleware [${middlewareName}] not installed. Please install it using your package manager.`, "middleware-resolver");
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A utility function that wraps the creation and retrieval of middleware.
|
|
57
|
+
* It creates a new instance of MiddlewareResolver and calls the getMiddleware method.
|
|
58
|
+
*
|
|
59
|
+
* @param {string} middleware - The name of the middleware to be retrieved.
|
|
60
|
+
* @param {...any} options - Optional arguments to configure the middleware.
|
|
61
|
+
* @returns {express.RequestHandler | null} - Returns the configured middleware or null if not found or not installed.
|
|
62
|
+
*/
|
|
63
|
+
function middlewareResolver(middleware, ...options) {
|
|
64
|
+
const resolver = new MiddlewareResolver();
|
|
65
|
+
return resolver.getMiddleware(middleware, ...options);
|
|
66
|
+
}
|
|
67
|
+
exports.middlewareResolver = middlewareResolver;
|