@expressots/core 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/lib/CHANGELOG.md +77 -0
  2. package/lib/cjs/application/app-container.js +94 -82
  3. package/lib/cjs/application/application-factory.js +74 -72
  4. package/lib/cjs/application/index.js +7 -7
  5. package/lib/cjs/common/color-service.provider.js +47 -46
  6. package/lib/cjs/common/index.js +2 -2
  7. package/lib/cjs/common/package-resolver.provider.js +35 -35
  8. package/lib/cjs/common/project-config.provider.js +2 -2
  9. package/lib/cjs/console/console.js +61 -61
  10. package/lib/cjs/console/index.js +5 -5
  11. package/lib/cjs/container-module/container-module.js +111 -111
  12. package/lib/cjs/container-module/index.js +6 -6
  13. package/lib/cjs/controller/base-controller.js +75 -75
  14. package/lib/cjs/controller/index.js +5 -5
  15. package/lib/cjs/decorator/index.js +17 -17
  16. package/lib/cjs/decorator/scope-binding.js +44 -44
  17. package/lib/cjs/error/app-error.js +26 -37
  18. package/lib/cjs/error/error-handler-middleware.js +28 -28
  19. package/lib/cjs/error/index.js +9 -9
  20. package/lib/cjs/error/report.js +54 -57
  21. package/lib/cjs/error/status-code.js +89 -89
  22. package/lib/cjs/index.js +26 -26
  23. package/lib/cjs/middleware/index.js +32 -29
  24. package/lib/cjs/middleware/interfaces/body-parser.interface.js +2 -2
  25. package/lib/cjs/middleware/interfaces/compression.interface.js +2 -2
  26. package/lib/cjs/middleware/interfaces/cookie-parser.interface.js +2 -2
  27. package/lib/cjs/middleware/interfaces/cookie-session/cookie-session.interface.js +2 -2
  28. package/lib/cjs/middleware/interfaces/cookie-session/keygrip.interface.js +2 -2
  29. package/lib/cjs/middleware/interfaces/cors.interface.js +2 -2
  30. package/lib/cjs/middleware/interfaces/express-rate-limit.interface.js +2 -2
  31. package/lib/cjs/middleware/interfaces/express-session.interface.js +2 -2
  32. package/lib/cjs/middleware/interfaces/helmet.interface.js +2 -2
  33. package/lib/cjs/middleware/interfaces/morgan.interface.js +2 -2
  34. package/lib/cjs/middleware/interfaces/multer.interface.js +2 -0
  35. package/lib/cjs/middleware/interfaces/serve-favicon.interface.js +2 -2
  36. package/lib/cjs/middleware/interfaces/serve-static.interface.js +2 -2
  37. package/lib/cjs/middleware/middleware-resolver.js +72 -72
  38. package/lib/cjs/middleware/middleware-service.js +481 -300
  39. package/lib/cjs/provider/db-in-memory/db-in-memory.provider.js +82 -75
  40. package/lib/cjs/provider/dto-validator/dto-validator.provider.js +53 -53
  41. package/lib/cjs/provider/environment/env-validator.provider.js +98 -96
  42. package/lib/cjs/provider/index.js +13 -13
  43. package/lib/cjs/provider/logger/{logger-service.js → logger.provider.js} +117 -115
  44. package/lib/cjs/provider/provider-manager.js +50 -0
  45. package/lib/cjs/render/handlebars.interface.js +2 -2
  46. package/lib/cjs/render/index.js +2 -2
  47. package/lib/cjs/render/render.type.js +2 -2
  48. package/lib/cjs/types/application/app-container.d.ts +62 -125
  49. package/lib/cjs/types/application/application-factory.d.ts +34 -33
  50. package/lib/cjs/types/application/index.d.ts +2 -2
  51. package/lib/cjs/types/common/color-service.provider.d.ts +29 -29
  52. package/lib/cjs/types/common/index.d.ts +1 -1
  53. package/lib/cjs/types/common/package-resolver.provider.d.ts +8 -8
  54. package/lib/cjs/types/common/project-config.provider.d.ts +47 -47
  55. package/lib/cjs/types/console/console.d.ts +27 -27
  56. package/lib/cjs/types/console/index.d.ts +1 -1
  57. package/lib/cjs/types/container-module/container-module.d.ts +28 -28
  58. package/lib/cjs/types/container-module/index.d.ts +1 -1
  59. package/lib/cjs/types/controller/base-controller.d.ts +48 -48
  60. package/lib/cjs/types/controller/index.d.ts +1 -1
  61. package/lib/cjs/types/decorator/index.d.ts +1 -1
  62. package/lib/cjs/types/decorator/scope-binding.d.ts +33 -33
  63. package/lib/cjs/types/error/app-error.d.ts +29 -29
  64. package/lib/cjs/types/error/error-handler-middleware.d.ts +11 -11
  65. package/lib/cjs/types/error/index.d.ts +3 -3
  66. package/lib/cjs/types/error/report.d.ts +25 -25
  67. package/lib/cjs/types/error/status-code.d.ts +136 -136
  68. package/lib/cjs/types/index.d.ts +10 -10
  69. package/lib/cjs/types/middleware/index.d.ts +13 -12
  70. package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +33 -33
  71. package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +98 -98
  72. package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts +9 -9
  73. package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +57 -57
  74. package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +27 -27
  75. package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +57 -57
  76. package/lib/cjs/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -292
  77. package/lib/cjs/types/middleware/interfaces/express-session.interface.d.ts +207 -208
  78. package/lib/cjs/types/middleware/interfaces/helmet.interface.d.ts +210 -210
  79. package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts +40 -40
  80. package/lib/cjs/types/middleware/interfaces/multer.interface.d.ts +255 -0
  81. package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +11 -11
  82. package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +70 -70
  83. package/lib/cjs/types/middleware/middleware-resolver.d.ts +11 -11
  84. package/lib/cjs/types/middleware/middleware-service.d.ts +368 -275
  85. package/lib/cjs/types/provider/db-in-memory/db-in-memory.provider.d.ts +43 -38
  86. package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +11 -11
  87. package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +35 -30
  88. package/lib/cjs/types/provider/index.d.ts +5 -5
  89. package/lib/cjs/types/provider/logger/{logger-service.d.ts → logger.provider.d.ts} +54 -49
  90. package/lib/cjs/types/provider/provider-manager.d.ts +16 -0
  91. package/lib/cjs/types/render/handlebars.interface.d.ts +46 -46
  92. package/lib/cjs/types/render/index.d.ts +2 -2
  93. package/lib/cjs/types/render/render.type.d.ts +12 -12
  94. package/lib/package.json +21 -20
  95. package/package.json +21 -20
  96. package/lib/cjs/provider/provider-service.js +0 -38
  97. package/lib/cjs/types/provider/provider-service.d.ts +0 -30
@@ -1,115 +1,117 @@
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 Logger_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Logger = void 0;
14
- const inversify_binding_decorators_1 = require("inversify-binding-decorators");
15
- const color_service_provider_1 = require("../../common/color-service.provider");
16
- /**
17
- * Applies a specified color to a text string.
18
- *
19
- * @param text - The text to be colored.
20
- * @param color - The color to be applied.
21
- * @returns The colored text.
22
- */
23
- function colorText(text, color) {
24
- return `${color_service_provider_1.colorCodes[color]}${text}\x1b[0m`;
25
- }
26
- /**
27
- * Class that provides logging functionality with colorized text.
28
- */
29
- let Logger = Logger_1 = class Logger {
30
- pid;
31
- constructor() {
32
- this.pid = process.pid;
33
- }
34
- /**
35
- * Formats the log message with color, timestamps, and log levels.
36
- *
37
- * @param logLevel - The level of the log (e.g. INFO, WARN).
38
- * @param message - The main log message.
39
- * @param module - Optional module name.
40
- * @returns The formatted log message.
41
- */
42
- formatMessage(logLevel = "NONE", message, module) {
43
- const localDate = new Date();
44
- const options = {
45
- year: "numeric",
46
- month: "2-digit",
47
- day: "2-digit",
48
- hour: "2-digit",
49
- minute: "2-digit",
50
- second: "2-digit",
51
- };
52
- const timestamp = colorText(localDate.toLocaleString(undefined, options).replace(",", ""), "white");
53
- let logColor;
54
- switch (logLevel) {
55
- case "INFO":
56
- logColor = "blue";
57
- break;
58
- case "WARN":
59
- logColor = "yellow";
60
- break;
61
- case "ERROR":
62
- logColor = "red";
63
- break;
64
- default:
65
- logColor = "none";
66
- break;
67
- }
68
- const formattedLogLevel = colorText(logLevel.padEnd(5, " "), logColor);
69
- if (logLevel === "NONE") {
70
- return `${colorText("[ExpressoTS]", "none")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "none")} ${formattedLogLevel} [${colorText(module || "", "none")}] ${colorText(message, logColor)}\n`;
71
- }
72
- return `${colorText("[ExpressoTS]", "green")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "green")} ${formattedLogLevel} [${colorText(module || "", "green")}] ${colorText(message, logColor)}\n`;
73
- }
74
- /**
75
- * Logs a generic message.
76
- *
77
- * @param message - The message to log.
78
- * @param module - Optional module name.
79
- */
80
- msg(message, module) {
81
- process.stdout.write(this.formatMessage("NONE", message, module));
82
- }
83
- /**
84
- * Logs an informational message.
85
- *
86
- * @param message - The message to log.
87
- * @param module - Optional module name.
88
- */
89
- info(message, module) {
90
- process.stdout.write(this.formatMessage("INFO", message, module));
91
- }
92
- /**
93
- * Logs a warning message.
94
- *
95
- * @param message - The message to log.
96
- * @param module - Optional module name.
97
- */
98
- warn(message, module) {
99
- process.stdout.write(this.formatMessage("WARN", message, module));
100
- }
101
- /**
102
- * Logs an error message.
103
- *
104
- * @param message - The message to log.
105
- * @param module - Optional module name.
106
- */
107
- error(message, module) {
108
- process.stderr.write(this.formatMessage("ERROR", message, module));
109
- }
110
- };
111
- exports.Logger = Logger;
112
- exports.Logger = Logger = Logger_1 = __decorate([
113
- (0, inversify_binding_decorators_1.provide)(Logger_1),
114
- __metadata("design:paramtypes", [])
115
- ], Logger);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Logger = void 0;
13
+ const inversify_1 = require("inversify");
14
+ const color_service_provider_1 = require("../../common/color-service.provider");
15
+ /**
16
+ * Applies a specified color to a text string.
17
+ *
18
+ * @param text - The text to be colored.
19
+ * @param color - The color to be applied.
20
+ * @returns The colored text.
21
+ */
22
+ function colorText(text, color) {
23
+ return `${color_service_provider_1.colorCodes[color]}${text}\x1b[0m`;
24
+ }
25
+ /**
26
+ * Class that provides logging functionality with colorized text.
27
+ */
28
+ let Logger = class Logger {
29
+ constructor() {
30
+ this.name = "Logger";
31
+ this.version = "0.0.1";
32
+ this.author = "Richard Zampieri";
33
+ this.repo = "internal";
34
+ this.pid = process.pid;
35
+ }
36
+ /**
37
+ * Formats the log message with color, timestamps, and log levels.
38
+ *
39
+ * @param logLevel - The level of the log (e.g. INFO, WARN).
40
+ * @param message - The main log message.
41
+ * @param module - Optional module name.
42
+ * @returns The formatted log message.
43
+ */
44
+ formatMessage(logLevel = "NONE", message, module) {
45
+ const localDate = new Date();
46
+ const options = {
47
+ year: "numeric",
48
+ month: "2-digit",
49
+ day: "2-digit",
50
+ hour: "2-digit",
51
+ minute: "2-digit",
52
+ second: "2-digit",
53
+ };
54
+ const timestamp = colorText(localDate.toLocaleString(undefined, options).replace(",", ""), "white");
55
+ let logColor;
56
+ switch (logLevel) {
57
+ case "INFO":
58
+ logColor = "blue";
59
+ break;
60
+ case "WARN":
61
+ logColor = "yellow";
62
+ break;
63
+ case "ERROR":
64
+ logColor = "red";
65
+ break;
66
+ default:
67
+ logColor = "none";
68
+ break;
69
+ }
70
+ const formattedLogLevel = colorText(logLevel.padEnd(5, " "), logColor);
71
+ if (logLevel === "NONE") {
72
+ return `${colorText("[ExpressoTS]", "none")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "none")} ${formattedLogLevel} [${colorText(module || "", "none")}] ${colorText(message, logColor)}\n`;
73
+ }
74
+ return `${colorText("[ExpressoTS]", "green")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "green")} ${formattedLogLevel} [${colorText(module || "", "green")}] ${colorText(message, logColor)}\n`;
75
+ }
76
+ /**
77
+ * Logs a generic message.
78
+ *
79
+ * @param message - The message to log.
80
+ * @param module - Optional module name.
81
+ */
82
+ msg(message, module) {
83
+ process.stdout.write(this.formatMessage("NONE", message, module));
84
+ }
85
+ /**
86
+ * Logs an informational message.
87
+ *
88
+ * @param message - The message to log.
89
+ * @param module - Optional module name.
90
+ */
91
+ info(message, module) {
92
+ process.stdout.write(this.formatMessage("INFO", message, module));
93
+ }
94
+ /**
95
+ * Logs a warning message.
96
+ *
97
+ * @param message - The message to log.
98
+ * @param module - Optional module name.
99
+ */
100
+ warn(message, module) {
101
+ process.stdout.write(this.formatMessage("WARN", message, module));
102
+ }
103
+ /**
104
+ * Logs an error message.
105
+ *
106
+ * @param message - The message to log.
107
+ * @param module - Optional module name.
108
+ */
109
+ error(message, module) {
110
+ process.stderr.write(this.formatMessage("ERROR", message, module));
111
+ }
112
+ };
113
+ Logger = __decorate([
114
+ (0, inversify_1.injectable)(),
115
+ __metadata("design:paramtypes", [])
116
+ ], Logger);
117
+ exports.Logger = Logger;
@@ -0,0 +1,50 @@
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 ProviderManager_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ProviderManager = void 0;
11
+ require("reflect-metadata");
12
+ const inversify_1 = require("inversify");
13
+ const application_1 = require("../application");
14
+ const decorator_1 = require("../decorator");
15
+ const logger_provider_1 = require("./logger/logger.provider");
16
+ let ProviderManager = ProviderManager_1 = class ProviderManager {
17
+ constructor() {
18
+ this.container = application_1.AppFactory.container;
19
+ this.logger = new logger_provider_1.Logger();
20
+ }
21
+ register(serviceIdentifier, scope = inversify_1.BindingScopeEnum.Request) {
22
+ if (this.container.isBound(serviceIdentifier)) {
23
+ this.logger.warn(`${serviceIdentifier.name} already registered`, "provider-manager");
24
+ return;
25
+ }
26
+ switch (scope) {
27
+ case inversify_1.BindingScopeEnum.Singleton:
28
+ this.container.bind(serviceIdentifier).toSelf().inSingletonScope();
29
+ break;
30
+ case inversify_1.BindingScopeEnum.Transient:
31
+ this.container.bind(serviceIdentifier).toSelf().inTransientScope();
32
+ break;
33
+ case inversify_1.BindingScopeEnum.Request:
34
+ this.container.bind(serviceIdentifier).toSelf().inRequestScope();
35
+ break;
36
+ }
37
+ }
38
+ get(provider) {
39
+ const serviceIdentifier = this.container.get(provider);
40
+ if (!serviceIdentifier) {
41
+ this.logger.error(`${provider.name} not registered`, "provider-manager");
42
+ throw new Error(`Provider ${provider.name} not registered`);
43
+ }
44
+ return serviceIdentifier;
45
+ }
46
+ };
47
+ ProviderManager = ProviderManager_1 = __decorate([
48
+ (0, decorator_1.provideSingleton)(ProviderManager_1)
49
+ ], ProviderManager);
50
+ exports.ProviderManager = ProviderManager;
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,125 +1,62 @@
1
- import { Container, ContainerModule, interfaces } from "inversify";
2
- /**
3
- * Represents a single binding in the dependency injection container.
4
- */
5
- interface Binding {
6
- /**
7
- * Unique identifier for this binding.
8
- */
9
- id: number;
10
- /**
11
- * Indicates whether this binding is activated.
12
- */
13
- activated: boolean;
14
- /**
15
- * Symbol used to identify the service.
16
- */
17
- serviceIdentifier: symbol;
18
- /**
19
- * Scope of the binding (e.g., 'Singleton', 'Transient', 'Request').
20
- */
21
- scope: string;
22
- /**
23
- * Type of the binding (e.g., 'Instance', 'Factory', 'Provider').
24
- */
25
- type: string;
26
- /**
27
- * Object used to match or constrain the binding.
28
- */
29
- constraint: object;
30
- /**
31
- * The actual implementation type of the service.
32
- */
33
- implementationType: object;
34
- /**
35
- * Cached instance, used if the binding's scope allows it.
36
- */
37
- cache: object | null;
38
- /**
39
- * Optional factory to create the service instance.
40
- */
41
- factory: object | null;
42
- /**
43
- * Optional provider to create the service instance.
44
- */
45
- provider: object | null;
46
- /**
47
- * Function to run when activating a new instance.
48
- */
49
- onActivation: object | null;
50
- /**
51
- * Function to run when deactivating an instance.
52
- */
53
- onDeactivation: object | null;
54
- /**
55
- * Optional dynamic value that can be used to resolve the service.
56
- */
57
- dynamicValue: object | null;
58
- /**
59
- * Module ID where the binding is defined, useful for debugging.
60
- */
61
- moduleId: number;
62
- }
63
- /**
64
- * Type alias for ServiceIdentifier, used to specify a unique identifier for a service.
65
- * It's usually a symbol, but can be other types as well.
66
- */
67
- type ServiceIdentifier = typeof Symbol;
68
- /**
69
- * Interface for container options that can be passed to the AppContainer class.
70
- */
71
- interface ContainerOptions {
72
- /**
73
- * The default scope for bindings in the container.
74
- * It can be set to Request (default), Singleton, or Transient.
75
- */
76
- defaultScope?: interfaces.BindingScope;
77
- /**
78
- * Allows skipping of base class checks when working with derived classes.
79
- */
80
- skipBaseClassChecks?: boolean;
81
- }
82
- /**
83
- * The AppContainer class provides a container for managing dependency injection.
84
- * It allows the creation of a container with custom options, including default binding scope
85
- * and the ability to skip base class checks. The container can be loaded with multiple
86
- * ContainerModule instances, facilitating modular and organized code.
87
- *
88
- * Usage:
89
- * const appContainer = new AppContainer(options);
90
- * const container = appContainer.create(modules);
91
- *
92
- * @provide AppContainer
93
- */
94
- declare class AppContainer {
95
- private container;
96
- private options;
97
- /**
98
- * Constructs the AppContainer instance.
99
- * @param options - The options for creating the container. Can include custom default scope and skip base class checks setting.
100
- */
101
- constructor(options?: ContainerOptions);
102
- /**
103
- * Creates and configures a new dependency injection container.
104
- * @param modules - An array of ContainerModule instances to load into the container.
105
- * @param defaultScope - The default scope to use for bindings. Scoped (Request) by default, but offers Singleton and Transient as well.
106
- * @returns The configured dependency injection container.
107
- */
108
- create(modules: Array<ContainerModule>): Container;
109
- /**
110
- * Retrieves the binding dictionary of the container.
111
- * @returns The binding dictionary of the container.
112
- */
113
- getBindingDictionary(): Map<ServiceIdentifier, Array<Binding>>;
114
- /**
115
- * Retrieves the container options.
116
- * @returns The container options.
117
- */
118
- getContainerOptions(): interfaces.ContainerOptions;
119
- /**
120
- * Retrieves the container.
121
- * @returns The container.
122
- */
123
- get Container(): Container;
124
- }
125
- export { AppContainer };
1
+ import { Container, ContainerModule, interfaces } from "inversify";
2
+ /**
3
+ * Interface for container options that can be passed to the AppContainer class.
4
+ */
5
+ interface ContainerOptions {
6
+ /**
7
+ * The default scope for bindings in the container.
8
+ * It can be set to Request (default), Singleton, or Transient.
9
+ */
10
+ defaultScope?: interfaces.BindingScope;
11
+ /**
12
+ * Allows skipping of base class checks when working with derived classes.
13
+ */
14
+ skipBaseClassChecks?: boolean;
15
+ /**
16
+ * Allows auto-binding of injectable classes.
17
+ */
18
+ autoBindInjectable?: boolean;
19
+ }
20
+ /**
21
+ * The AppContainer class provides a container for managing dependency injection.
22
+ * It allows the creation of a container with custom options, including default binding scope
23
+ * and the ability to skip base class checks. The container can be loaded with multiple
24
+ * ContainerModule instances, facilitating modular and organized code.
25
+ *
26
+ * Usage:
27
+ * const appContainer = new AppContainer(options);
28
+ * const container = appContainer.create(modules);
29
+ *
30
+ * @provide AppContainer
31
+ */
32
+ declare class AppContainer {
33
+ private container;
34
+ private options;
35
+ /**
36
+ * Constructs the AppContainer instance.
37
+ * @param options - The options for creating the container. Can include custom default scope and skip base class checks setting.
38
+ */
39
+ constructor(options?: ContainerOptions);
40
+ /**
41
+ * Creates and configures a new dependency injection container.
42
+ * @param modules - An array of ContainerModule instances to load into the container.
43
+ * @returns The configured dependency injection container.
44
+ */
45
+ create(modules: Array<ContainerModule>): Container;
46
+ /**
47
+ * Retrieves the binding dictionary of the container.
48
+ * @returns(void) Print table of the binding dictionary of the container.
49
+ */
50
+ viewContainerBindings(): void;
51
+ /**
52
+ * Retrieves the container options.
53
+ * @returns The container options.
54
+ */
55
+ getContainerOptions(): interfaces.ContainerOptions;
56
+ /**
57
+ * Retrieves the container.
58
+ * @returns The container.
59
+ */
60
+ get Container(): Container;
61
+ }
62
+ export { AppContainer };
@@ -1,33 +1,34 @@
1
- import express from "express";
2
- import { Container } from "inversify";
3
- import { AppExpress, IApplicationExpress } from "@expressots/adapter-express";
4
- /**
5
- * AppFactory Class
6
- *
7
- * Responsible for creating an instance of the Application,
8
- * either using a custom application type or with provided middlewares.
9
- */
10
- declare class AppFactory {
11
- private static logger;
12
- /**
13
- * Creates an instance of the application using a custom application type.
14
- * @param container - InversifyJS container to resolve dependencies.
15
- * @param CustomAppType - Custom application class extending Application.
16
- * @returns Instance of the application.
17
- */
18
- static create(container: Container, CustomAppType: new () => AppExpress, httpServerFactory?: new () => AppExpress): Promise<IApplicationExpress>;
19
- /**
20
- * Creates an instance of the application with provided middlewares.
21
- * @param container - InversifyJS container to resolve dependencies.
22
- * @param middlewares - Array of Express middlewares to be applied.
23
- * @returns Instance of the application.
24
- */
25
- static create(container: Container, middlewares: Array<express.RequestHandler>, httpServerFactory?: new () => AppExpress): Promise<AppExpress>;
26
- /**
27
- * Checks if the provided parameter is a custom application type.
28
- * @param appTypeOrMiddlewares - Custom application class or array of middlewares.
29
- * @returns True if the provided parameter is a custom application type.
30
- */
31
- private static isOpinionated;
32
- }
33
- export { AppFactory };
1
+ import express from "express";
2
+ import { Container } from "inversify";
3
+ import { AppExpress, IApplicationExpress } from "@expressots/adapter-express";
4
+ /**
5
+ * AppFactory Class
6
+ *
7
+ * Responsible for creating an instance of the Application,
8
+ * either using a custom application type or with provided middlewares.
9
+ */
10
+ declare class AppFactory {
11
+ static container: Container;
12
+ private static logger;
13
+ /**
14
+ * Creates an instance of the application using a custom application type.
15
+ * @param container - InversifyJS container to resolve dependencies.
16
+ * @param CustomAppType - Custom application class extending Application.
17
+ * @returns Instance of the application.
18
+ */
19
+ static create(container: Container, CustomAppType: new () => AppExpress, httpServerFactory?: new () => AppExpress): Promise<IApplicationExpress>;
20
+ /**
21
+ * Creates an instance of the application with provided middlewares.
22
+ * @param container - InversifyJS container to resolve dependencies.
23
+ * @param middlewares - Array of Express middlewares to be applied.
24
+ * @returns Instance of the application.
25
+ */
26
+ static create(container: Container, middlewares: Array<express.RequestHandler>, httpServerFactory?: new () => AppExpress): Promise<AppExpress>;
27
+ /**
28
+ * Checks if the provided parameter is a custom application type.
29
+ * @param appTypeOrMiddlewares - Custom application class or array of middlewares.
30
+ * @returns True if the provided parameter is a custom application type.
31
+ */
32
+ private static isOpinionated;
33
+ }
34
+ export { AppFactory };
@@ -1,2 +1,2 @@
1
- export { AppContainer } from "./app-container";
2
- export { AppFactory } from "./application-factory";
1
+ export { AppContainer } from "./app-container";
2
+ export { AppFactory } from "./application-factory";
@@ -1,29 +1,29 @@
1
- /**
2
- * Type representing supported text colors.
3
- */
4
- type Color = "red" | "green" | "yellow" | "blue" | "white" | "black" | "none";
5
- /**
6
- * Mapping of text color codes.
7
- *
8
- * @remarks
9
- * Defines the ANSI escape codes for the corresponding colors in the terminal.
10
- */
11
- declare const colorCodes: Record<Color, string>;
12
- /**
13
- * ANSI escape color codes mapping for different background colors.
14
- */
15
- declare const bgColorCodes: Record<Color, string>;
16
- /**
17
- * Enum representing possible color styles for console output.
18
- *
19
- * @remarks
20
- * Enum values correspond to the string representations of colors.
21
- */
22
- declare enum ColorStyle {
23
- None = "none",
24
- Yellow = "yellow",
25
- Blue = "blue",
26
- Green = "green",
27
- Red = "red"
28
- }
29
- export { Color, ColorStyle, colorCodes, bgColorCodes };
1
+ /**
2
+ * Type representing supported text colors.
3
+ */
4
+ type Color = "red" | "green" | "yellow" | "blue" | "white" | "black" | "none";
5
+ /**
6
+ * Mapping of text color codes.
7
+ *
8
+ * @remarks
9
+ * Defines the ANSI escape codes for the corresponding colors in the terminal.
10
+ */
11
+ declare const colorCodes: Record<Color, string>;
12
+ /**
13
+ * ANSI escape color codes mapping for different background colors.
14
+ */
15
+ declare const bgColorCodes: Record<Color, string>;
16
+ /**
17
+ * Enum representing possible color styles for console output.
18
+ *
19
+ * @remarks
20
+ * Enum values correspond to the string representations of colors.
21
+ */
22
+ declare enum ColorStyle {
23
+ None = "none",
24
+ Yellow = "yellow",
25
+ Blue = "blue",
26
+ Green = "green",
27
+ Red = "red"
28
+ }
29
+ export { Color, ColorStyle, colorCodes, bgColorCodes };
@@ -1 +1 @@
1
- export { Pattern, ExpressoConfig } from "./project-config.provider";
1
+ export { Pattern, ExpressoConfig } from "./project-config.provider";