@expressots/core 2.8.0 → 2.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 +41 -0
- package/lib/cjs/application/app-container.js +94 -82
- package/lib/cjs/application/application-factory.js +74 -72
- package/lib/cjs/application/index.js +7 -7
- package/lib/cjs/common/color-service.provider.js +47 -46
- package/lib/cjs/common/index.js +2 -2
- package/lib/cjs/common/package-resolver.provider.js +35 -35
- package/lib/cjs/common/project-config.provider.js +2 -2
- package/lib/cjs/console/console.js +61 -61
- package/lib/cjs/console/index.js +5 -5
- package/lib/cjs/container-module/container-module.js +111 -111
- package/lib/cjs/container-module/index.js +6 -6
- package/lib/cjs/controller/base-controller.js +75 -75
- package/lib/cjs/controller/index.js +5 -5
- package/lib/cjs/decorator/index.js +17 -17
- package/lib/cjs/decorator/scope-binding.js +44 -44
- package/lib/cjs/error/app-error.js +26 -37
- package/lib/cjs/error/error-handler-middleware.js +28 -28
- package/lib/cjs/error/index.js +9 -9
- package/lib/cjs/error/report.js +54 -57
- package/lib/cjs/error/status-code.js +89 -89
- package/lib/cjs/index.js +26 -26
- package/lib/cjs/middleware/index.js +32 -32
- package/lib/cjs/middleware/interfaces/body-parser.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/compression.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-parser.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-session/cookie-session.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-session/keygrip.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cors.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/express-rate-limit.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/express-session.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/helmet.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/morgan.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/multer.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/serve-favicon.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/serve-static.interface.js +2 -2
- package/lib/cjs/middleware/middleware-resolver.js +72 -73
- package/lib/cjs/middleware/middleware-service.js +481 -479
- package/lib/cjs/provider/db-in-memory/db-in-memory.provider.js +82 -75
- package/lib/cjs/provider/dto-validator/dto-validator.provider.js +53 -53
- package/lib/cjs/provider/environment/env-validator.provider.js +98 -96
- package/lib/cjs/provider/index.js +13 -13
- package/lib/cjs/provider/logger/{logger-service.js → logger.provider.js} +117 -115
- package/lib/cjs/provider/provider-manager.js +50 -0
- package/lib/cjs/render/handlebars.interface.js +2 -2
- package/lib/cjs/render/index.js +2 -2
- package/lib/cjs/render/render.type.js +2 -2
- package/lib/cjs/types/application/app-container.d.ts +62 -125
- package/lib/cjs/types/application/application-factory.d.ts +34 -33
- package/lib/cjs/types/application/index.d.ts +2 -2
- package/lib/cjs/types/common/color-service.provider.d.ts +29 -29
- package/lib/cjs/types/common/index.d.ts +1 -1
- package/lib/cjs/types/common/package-resolver.provider.d.ts +8 -8
- package/lib/cjs/types/common/project-config.provider.d.ts +56 -47
- package/lib/cjs/types/console/console.d.ts +27 -27
- package/lib/cjs/types/console/index.d.ts +1 -1
- package/lib/cjs/types/container-module/container-module.d.ts +28 -28
- package/lib/cjs/types/container-module/index.d.ts +1 -1
- package/lib/cjs/types/controller/base-controller.d.ts +48 -48
- package/lib/cjs/types/controller/index.d.ts +1 -1
- package/lib/cjs/types/decorator/index.d.ts +1 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts +33 -33
- package/lib/cjs/types/error/app-error.d.ts +29 -29
- package/lib/cjs/types/error/error-handler-middleware.d.ts +11 -11
- package/lib/cjs/types/error/index.d.ts +3 -3
- package/lib/cjs/types/error/report.d.ts +25 -25
- package/lib/cjs/types/error/status-code.d.ts +136 -136
- package/lib/cjs/types/index.d.ts +10 -10
- package/lib/cjs/types/middleware/index.d.ts +13 -13
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +33 -33
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +98 -98
- package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts +9 -9
- package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +57 -57
- package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +27 -27
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +57 -57
- package/lib/cjs/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -292
- package/lib/cjs/types/middleware/interfaces/express-session.interface.d.ts +207 -207
- package/lib/cjs/types/middleware/interfaces/helmet.interface.d.ts +210 -210
- package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts +40 -40
- package/lib/cjs/types/middleware/interfaces/multer.interface.d.ts +255 -255
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +11 -11
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +70 -70
- package/lib/cjs/types/middleware/middleware-resolver.d.ts +11 -11
- package/lib/cjs/types/middleware/middleware-service.d.ts +368 -368
- package/lib/cjs/types/provider/db-in-memory/db-in-memory.provider.d.ts +43 -38
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +11 -11
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +35 -30
- package/lib/cjs/types/provider/index.d.ts +5 -5
- package/lib/cjs/types/provider/logger/{logger-service.d.ts → logger.provider.d.ts} +54 -49
- package/lib/cjs/types/provider/provider-manager.d.ts +16 -0
- package/lib/cjs/types/render/handlebars.interface.d.ts +46 -46
- package/lib/cjs/types/render/index.d.ts +2 -2
- package/lib/cjs/types/render/render.type.d.ts +12 -12
- package/lib/package.json +19 -18
- package/package.json +19 -18
- package/lib/cjs/provider/provider-service.js +0 -38
- package/lib/cjs/types/provider/provider-service.d.ts +0 -30
|
@@ -1,61 +1,61 @@
|
|
|
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 Console_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.Console = void 0;
|
|
11
|
-
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
12
|
-
const color_service_provider_1 = require("../common/color-service.provider");
|
|
13
|
-
/**
|
|
14
|
-
* The Console class provides methods for displaying styled messages in the console.
|
|
15
|
-
* @provide Console
|
|
16
|
-
*/
|
|
17
|
-
let Console = Console_1 = class Console {
|
|
18
|
-
/**
|
|
19
|
-
* Print a message to the console with the specified color style.
|
|
20
|
-
* @param message - The message to be printed.
|
|
21
|
-
* @param colorStyle - The color style for the message.
|
|
22
|
-
*/
|
|
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`);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Display a message in the console with details about the running server.
|
|
30
|
-
* @param port - The port number the server is running on.
|
|
31
|
-
* @param environment - The server environment.
|
|
32
|
-
* @param consoleMessage - Optional application message details for console output.
|
|
33
|
-
*/
|
|
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);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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 Console_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.Console = void 0;
|
|
11
|
+
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
12
|
+
const color_service_provider_1 = require("../common/color-service.provider");
|
|
13
|
+
/**
|
|
14
|
+
* The Console class provides methods for displaying styled messages in the console.
|
|
15
|
+
* @provide Console
|
|
16
|
+
*/
|
|
17
|
+
let Console = Console_1 = class Console {
|
|
18
|
+
/**
|
|
19
|
+
* Print a message to the console with the specified color style.
|
|
20
|
+
* @param message - The message to be printed.
|
|
21
|
+
* @param colorStyle - The color style for the message.
|
|
22
|
+
*/
|
|
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`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Display a message in the console with details about the running server.
|
|
30
|
+
* @param port - The port number the server is running on.
|
|
31
|
+
* @param environment - The server environment.
|
|
32
|
+
* @param consoleMessage - Optional application message details for console output.
|
|
33
|
+
*/
|
|
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);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
Console = Console_1 = __decorate([
|
|
59
|
+
(0, inversify_binding_decorators_1.provide)(Console_1)
|
|
60
|
+
], Console);
|
|
61
|
+
exports.Console = Console;
|
package/lib/cjs/console/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Console = void 0;
|
|
4
|
-
var console_1 = require("./console");
|
|
5
|
-
Object.defineProperty(exports, "Console", { enumerable: true, get: function () { return console_1.Console; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Console = void 0;
|
|
4
|
+
var console_1 = require("./console");
|
|
5
|
+
Object.defineProperty(exports, "Console", { enumerable: true, get: function () { return console_1.Console; } });
|
|
@@ -1,111 +1,111 @@
|
|
|
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 BaseModule_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.scope = exports.CreateModule = void 0;
|
|
11
|
-
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
12
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
13
|
-
const inversify_1 = require("inversify");
|
|
14
|
-
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
15
|
-
const decorator_1 = require("../decorator");
|
|
16
|
-
/**
|
|
17
|
-
* Key to be used for storing and retrieving binding type metadata.
|
|
18
|
-
*/
|
|
19
|
-
const BINDING_TYPE_METADATA_KEY = "binding-type";
|
|
20
|
-
/**
|
|
21
|
-
* The scope decorator is a higher order function that can be used to decorate a class with a binding type.
|
|
22
|
-
* @param binding An instance of interfaces.BindingScope which represents the binding type.
|
|
23
|
-
* @returns A decorator function that can be used to decorate a class with a binding type.
|
|
24
|
-
*/
|
|
25
|
-
const scope = (binding) => {
|
|
26
|
-
return function (target) {
|
|
27
|
-
if (!Reflect.hasMetadata(BINDING_TYPE_METADATA_KEY, target)) {
|
|
28
|
-
Reflect.defineMetadata(BINDING_TYPE_METADATA_KEY, binding, target);
|
|
29
|
-
switch (binding) {
|
|
30
|
-
case inversify_1.BindingScopeEnum.Singleton:
|
|
31
|
-
(0, decorator_1.provideSingleton)(target);
|
|
32
|
-
break;
|
|
33
|
-
case inversify_1.BindingScopeEnum.Transient:
|
|
34
|
-
(0, decorator_1.provideTransient)(target);
|
|
35
|
-
break;
|
|
36
|
-
default:
|
|
37
|
-
(0, inversify_binding_decorators_1.provide)(target);
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
exports.scope = scope;
|
|
44
|
-
/**
|
|
45
|
-
* The BaseModule class provides methods for creating InversifyJS container modules.
|
|
46
|
-
* @provide BaseModule
|
|
47
|
-
*/
|
|
48
|
-
let BaseModule = BaseModule_1 = class BaseModule {
|
|
49
|
-
/**
|
|
50
|
-
* Create a map of symbols for the provided controllers.
|
|
51
|
-
* @param controllers - An array of controller classes.
|
|
52
|
-
* @returns A map of symbols mapped to controller constructor functions.
|
|
53
|
-
*/
|
|
54
|
-
static createSymbols(controllers) {
|
|
55
|
-
const symbols = new Map();
|
|
56
|
-
for (const controller of controllers) {
|
|
57
|
-
const target = controller;
|
|
58
|
-
const symbol = Symbol.for(target.name);
|
|
59
|
-
symbols.set(symbol, target);
|
|
60
|
-
}
|
|
61
|
-
return symbols;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Create an InversifyJS ContainerModule for the provided controllers.
|
|
65
|
-
* @param controllers - An array of controller classes.
|
|
66
|
-
* @param scope - An optional binding scope to be used for all controllers.
|
|
67
|
-
* @returns A ContainerModule with the controller bindings.
|
|
68
|
-
*/
|
|
69
|
-
static createContainerModule(controllers, scope) {
|
|
70
|
-
const symbols = BaseModule_1.createSymbols(controllers);
|
|
71
|
-
return new inversify_1.ContainerModule((bind) => {
|
|
72
|
-
for (const [symbol, target] of symbols) {
|
|
73
|
-
if (scope) {
|
|
74
|
-
switch (scope) {
|
|
75
|
-
case inversify_1.BindingScopeEnum.Singleton:
|
|
76
|
-
bind(symbol).to(target).inSingletonScope();
|
|
77
|
-
break;
|
|
78
|
-
case inversify_1.BindingScopeEnum.Transient:
|
|
79
|
-
bind(symbol).to(target).inTransientScope();
|
|
80
|
-
break;
|
|
81
|
-
case inversify_1.BindingScopeEnum.Request:
|
|
82
|
-
bind(symbol).to(target).inRequestScope();
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
const bindingType = Reflect.getMetadata(BINDING_TYPE_METADATA_KEY, target);
|
|
88
|
-
switch (bindingType) {
|
|
89
|
-
case inversify_1.BindingScopeEnum.Singleton:
|
|
90
|
-
bind(symbol).to(target).inSingletonScope();
|
|
91
|
-
break;
|
|
92
|
-
case inversify_1.BindingScopeEnum.Transient:
|
|
93
|
-
bind(symbol).to(target).inTransientScope();
|
|
94
|
-
break;
|
|
95
|
-
case inversify_1.BindingScopeEnum.Request:
|
|
96
|
-
bind(symbol).to(target).inRequestScope();
|
|
97
|
-
break;
|
|
98
|
-
default:
|
|
99
|
-
bind(symbol).to(target).inRequestScope();
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
BaseModule = BaseModule_1 = __decorate([
|
|
108
|
-
(0, inversify_binding_decorators_1.provide)(BaseModule_1)
|
|
109
|
-
], BaseModule);
|
|
110
|
-
const CreateModule = BaseModule.createContainerModule;
|
|
111
|
-
exports.CreateModule = CreateModule;
|
|
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 BaseModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.scope = exports.CreateModule = void 0;
|
|
11
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
13
|
+
const inversify_1 = require("inversify");
|
|
14
|
+
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
15
|
+
const decorator_1 = require("../decorator");
|
|
16
|
+
/**
|
|
17
|
+
* Key to be used for storing and retrieving binding type metadata.
|
|
18
|
+
*/
|
|
19
|
+
const BINDING_TYPE_METADATA_KEY = "binding-type";
|
|
20
|
+
/**
|
|
21
|
+
* The scope decorator is a higher order function that can be used to decorate a class with a binding type.
|
|
22
|
+
* @param binding An instance of interfaces.BindingScope which represents the binding type.
|
|
23
|
+
* @returns A decorator function that can be used to decorate a class with a binding type.
|
|
24
|
+
*/
|
|
25
|
+
const scope = (binding) => {
|
|
26
|
+
return function (target) {
|
|
27
|
+
if (!Reflect.hasMetadata(BINDING_TYPE_METADATA_KEY, target)) {
|
|
28
|
+
Reflect.defineMetadata(BINDING_TYPE_METADATA_KEY, binding, target);
|
|
29
|
+
switch (binding) {
|
|
30
|
+
case inversify_1.BindingScopeEnum.Singleton:
|
|
31
|
+
(0, decorator_1.provideSingleton)(target);
|
|
32
|
+
break;
|
|
33
|
+
case inversify_1.BindingScopeEnum.Transient:
|
|
34
|
+
(0, decorator_1.provideTransient)(target);
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
(0, inversify_binding_decorators_1.provide)(target);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports.scope = scope;
|
|
44
|
+
/**
|
|
45
|
+
* The BaseModule class provides methods for creating InversifyJS container modules.
|
|
46
|
+
* @provide BaseModule
|
|
47
|
+
*/
|
|
48
|
+
let BaseModule = BaseModule_1 = class BaseModule {
|
|
49
|
+
/**
|
|
50
|
+
* Create a map of symbols for the provided controllers.
|
|
51
|
+
* @param controllers - An array of controller classes.
|
|
52
|
+
* @returns A map of symbols mapped to controller constructor functions.
|
|
53
|
+
*/
|
|
54
|
+
static createSymbols(controllers) {
|
|
55
|
+
const symbols = new Map();
|
|
56
|
+
for (const controller of controllers) {
|
|
57
|
+
const target = controller;
|
|
58
|
+
const symbol = Symbol.for(target.name);
|
|
59
|
+
symbols.set(symbol, target);
|
|
60
|
+
}
|
|
61
|
+
return symbols;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create an InversifyJS ContainerModule for the provided controllers.
|
|
65
|
+
* @param controllers - An array of controller classes.
|
|
66
|
+
* @param scope - An optional binding scope to be used for all controllers.
|
|
67
|
+
* @returns A ContainerModule with the controller bindings.
|
|
68
|
+
*/
|
|
69
|
+
static createContainerModule(controllers, scope) {
|
|
70
|
+
const symbols = BaseModule_1.createSymbols(controllers);
|
|
71
|
+
return new inversify_1.ContainerModule((bind) => {
|
|
72
|
+
for (const [symbol, target] of symbols) {
|
|
73
|
+
if (scope) {
|
|
74
|
+
switch (scope) {
|
|
75
|
+
case inversify_1.BindingScopeEnum.Singleton:
|
|
76
|
+
bind(symbol).to(target).inSingletonScope();
|
|
77
|
+
break;
|
|
78
|
+
case inversify_1.BindingScopeEnum.Transient:
|
|
79
|
+
bind(symbol).to(target).inTransientScope();
|
|
80
|
+
break;
|
|
81
|
+
case inversify_1.BindingScopeEnum.Request:
|
|
82
|
+
bind(symbol).to(target).inRequestScope();
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const bindingType = Reflect.getMetadata(BINDING_TYPE_METADATA_KEY, target);
|
|
88
|
+
switch (bindingType) {
|
|
89
|
+
case inversify_1.BindingScopeEnum.Singleton:
|
|
90
|
+
bind(symbol).to(target).inSingletonScope();
|
|
91
|
+
break;
|
|
92
|
+
case inversify_1.BindingScopeEnum.Transient:
|
|
93
|
+
bind(symbol).to(target).inTransientScope();
|
|
94
|
+
break;
|
|
95
|
+
case inversify_1.BindingScopeEnum.Request:
|
|
96
|
+
bind(symbol).to(target).inRequestScope();
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
bind(symbol).to(target).inRequestScope();
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
BaseModule = BaseModule_1 = __decorate([
|
|
108
|
+
(0, inversify_binding_decorators_1.provide)(BaseModule_1)
|
|
109
|
+
], BaseModule);
|
|
110
|
+
const CreateModule = BaseModule.createContainerModule;
|
|
111
|
+
exports.CreateModule = CreateModule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.scope = exports.CreateModule = void 0;
|
|
4
|
-
var container_module_1 = require("./container-module");
|
|
5
|
-
Object.defineProperty(exports, "CreateModule", { enumerable: true, get: function () { return container_module_1.CreateModule; } });
|
|
6
|
-
Object.defineProperty(exports, "scope", { enumerable: true, get: function () { return container_module_1.scope; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scope = exports.CreateModule = void 0;
|
|
4
|
+
var container_module_1 = require("./container-module");
|
|
5
|
+
Object.defineProperty(exports, "CreateModule", { enumerable: true, get: function () { return container_module_1.CreateModule; } });
|
|
6
|
+
Object.defineProperty(exports, "scope", { enumerable: true, get: function () { return container_module_1.scope; } });
|
|
@@ -1,75 +1,75 @@
|
|
|
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 BaseController_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.BaseController = void 0;
|
|
11
|
-
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
12
|
-
/**
|
|
13
|
-
* The BaseController class is an abstract base class for controllers.
|
|
14
|
-
* It provides methods for handling use case calls and sending appropriate responses.
|
|
15
|
-
* @provide BaseController
|
|
16
|
-
*/
|
|
17
|
-
let BaseController = BaseController_1 = class BaseController {
|
|
18
|
-
/**
|
|
19
|
-
* Calls an asynchronous use case and sends an appropriate response based on the result.
|
|
20
|
-
* @param useCase - A promise representing the asynchronous use case to call.
|
|
21
|
-
* @param res - The Express response object.
|
|
22
|
-
* @param successStatusCode - The HTTP status code to return upon successful execution.
|
|
23
|
-
*/
|
|
24
|
-
async callUseCaseAsync(useCase, res, successStatusCode) {
|
|
25
|
-
return res.status(successStatusCode).json(await useCase);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Calls a use case and sends an appropriate response based on the result.
|
|
29
|
-
* @param useCase - The use case to call.
|
|
30
|
-
* @param res - The Express response object.
|
|
31
|
-
* @param successStatusCode - The HTTP status code to return upon successful execution.
|
|
32
|
-
*/
|
|
33
|
-
callUseCase(useCase, res, successStatusCode) {
|
|
34
|
-
return res.status(successStatusCode).json(useCase);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Synchronously renders a template with the given options using the Express `Response` object's render method.
|
|
38
|
-
*
|
|
39
|
-
* @protected
|
|
40
|
-
* @method callUseRender
|
|
41
|
-
*
|
|
42
|
-
* @param {Response} res - The Express `Response` object.
|
|
43
|
-
* @param {string} template - The name of the template to render.
|
|
44
|
-
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
45
|
-
*
|
|
46
|
-
*/
|
|
47
|
-
callUseRender(res, template, options = {}) {
|
|
48
|
-
return res.render(template, options);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Asynchronously renders a template with the given options using the Express `Response` object's render method.
|
|
52
|
-
*
|
|
53
|
-
* @protected
|
|
54
|
-
* @method callUseRenderAsync
|
|
55
|
-
*
|
|
56
|
-
* @param {Response} res - The Express `Response` object.
|
|
57
|
-
* @param {string} template - The name of the template to render.
|
|
58
|
-
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
callUseRenderAsync(res, template, options = {}) {
|
|
62
|
-
return new Promise((resolve, reject) => {
|
|
63
|
-
res.render(template, options, (err, compiled) => {
|
|
64
|
-
if (err) {
|
|
65
|
-
reject(err);
|
|
66
|
-
}
|
|
67
|
-
resolve(compiled);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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 BaseController_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.BaseController = void 0;
|
|
11
|
+
const inversify_binding_decorators_1 = require("inversify-binding-decorators");
|
|
12
|
+
/**
|
|
13
|
+
* The BaseController class is an abstract base class for controllers.
|
|
14
|
+
* It provides methods for handling use case calls and sending appropriate responses.
|
|
15
|
+
* @provide BaseController
|
|
16
|
+
*/
|
|
17
|
+
let BaseController = BaseController_1 = class BaseController {
|
|
18
|
+
/**
|
|
19
|
+
* Calls an asynchronous use case and sends an appropriate response based on the result.
|
|
20
|
+
* @param useCase - A promise representing the asynchronous use case to call.
|
|
21
|
+
* @param res - The Express response object.
|
|
22
|
+
* @param successStatusCode - The HTTP status code to return upon successful execution.
|
|
23
|
+
*/
|
|
24
|
+
async callUseCaseAsync(useCase, res, successStatusCode) {
|
|
25
|
+
return res.status(successStatusCode).json(await useCase);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Calls a use case and sends an appropriate response based on the result.
|
|
29
|
+
* @param useCase - The use case to call.
|
|
30
|
+
* @param res - The Express response object.
|
|
31
|
+
* @param successStatusCode - The HTTP status code to return upon successful execution.
|
|
32
|
+
*/
|
|
33
|
+
callUseCase(useCase, res, successStatusCode) {
|
|
34
|
+
return res.status(successStatusCode).json(useCase);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Synchronously renders a template with the given options using the Express `Response` object's render method.
|
|
38
|
+
*
|
|
39
|
+
* @protected
|
|
40
|
+
* @method callUseRender
|
|
41
|
+
*
|
|
42
|
+
* @param {Response} res - The Express `Response` object.
|
|
43
|
+
* @param {string} template - The name of the template to render.
|
|
44
|
+
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
callUseRender(res, template, options = {}) {
|
|
48
|
+
return res.render(template, options);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Asynchronously renders a template with the given options using the Express `Response` object's render method.
|
|
52
|
+
*
|
|
53
|
+
* @protected
|
|
54
|
+
* @method callUseRenderAsync
|
|
55
|
+
*
|
|
56
|
+
* @param {Response} res - The Express `Response` object.
|
|
57
|
+
* @param {string} template - The name of the template to render.
|
|
58
|
+
* @param {Object} [options={}] - An optional object containing data to be passed to the template.
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
callUseRenderAsync(res, template, options = {}) {
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
res.render(template, options, (err, compiled) => {
|
|
64
|
+
if (err) {
|
|
65
|
+
reject(err);
|
|
66
|
+
}
|
|
67
|
+
resolve(compiled);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
BaseController = BaseController_1 = __decorate([
|
|
73
|
+
(0, inversify_binding_decorators_1.provide)(BaseController_1)
|
|
74
|
+
], BaseController);
|
|
75
|
+
exports.BaseController = BaseController;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseController = void 0;
|
|
4
|
-
var base_controller_1 = require("./base-controller");
|
|
5
|
-
Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseController = void 0;
|
|
4
|
+
var base_controller_1 = require("./base-controller");
|
|
5
|
+
Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./scope-binding"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./scope-binding"), exports);
|