@expressots/core 2.2.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/lib/CHANGELOG.md +43 -0
  2. package/lib/cjs/application/app-container.js +10 -2
  3. package/lib/cjs/application/application-factory.js +33 -44
  4. package/lib/cjs/console/console.js +26 -39
  5. package/lib/cjs/controller/base-controller.js +2 -13
  6. package/lib/cjs/error/app-error.js +11 -0
  7. package/lib/cjs/error/report.js +4 -1
  8. package/lib/cjs/error/status-code.js +8 -2
  9. package/lib/cjs/middleware/index.js +25 -1
  10. package/lib/cjs/middleware/middleware-resolver.js +15 -12
  11. package/lib/cjs/middleware/middleware-service.js +33 -11
  12. package/lib/cjs/provider/dto-validator/dto-validator.provider.js +3 -12
  13. package/lib/cjs/provider/environment/env-validator.provider.js +2 -2
  14. package/lib/cjs/provider/logger/logger-service.js +1 -0
  15. package/lib/cjs/provider/provider-service.js +2 -0
  16. package/lib/cjs/types/application/app-container.d.ts +0 -1
  17. package/lib/cjs/types/application/application-factory.d.ts +0 -1
  18. package/lib/cjs/types/application/index.d.ts +0 -1
  19. package/lib/cjs/types/common/color-service.provider.d.ts +0 -1
  20. package/lib/cjs/types/common/index.d.ts +0 -1
  21. package/lib/cjs/types/common/package-resolver.provider.d.ts +0 -1
  22. package/lib/cjs/types/common/project-config.provider.d.ts +0 -1
  23. package/lib/cjs/types/console/console.d.ts +0 -1
  24. package/lib/cjs/types/console/index.d.ts +0 -1
  25. package/lib/cjs/types/container-module/container-module.d.ts +0 -1
  26. package/lib/cjs/types/container-module/index.d.ts +0 -1
  27. package/lib/cjs/types/controller/base-controller.d.ts +2 -3
  28. package/lib/cjs/types/controller/index.d.ts +0 -1
  29. package/lib/cjs/types/decorator/index.d.ts +0 -1
  30. package/lib/cjs/types/decorator/scope-binding.d.ts +0 -1
  31. package/lib/cjs/types/error/app-error.d.ts +0 -1
  32. package/lib/cjs/types/error/error-handler-middleware.d.ts +0 -1
  33. package/lib/cjs/types/error/index.d.ts +0 -1
  34. package/lib/cjs/types/error/report.d.ts +0 -1
  35. package/lib/cjs/types/error/status-code.d.ts +0 -1
  36. package/lib/cjs/types/index.d.ts +0 -1
  37. package/lib/cjs/types/middleware/index.d.ts +2 -1
  38. package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +0 -1
  39. package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +0 -1
  40. package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts +0 -1
  41. package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +0 -1
  42. package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +0 -1
  43. package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +0 -1
  44. package/lib/cjs/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -0
  45. package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts +40 -0
  46. package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +0 -1
  47. package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +0 -1
  48. package/lib/cjs/types/middleware/middleware-resolver.d.ts +0 -1
  49. package/lib/cjs/types/middleware/middleware-service.d.ts +24 -1
  50. package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +0 -1
  51. package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +0 -1
  52. package/lib/cjs/types/provider/index.d.ts +0 -1
  53. package/lib/cjs/types/provider/logger/logger-service.d.ts +0 -1
  54. package/lib/cjs/types/provider/provider-service.d.ts +0 -1
  55. package/lib/cjs/types/render/handlebars.interface.d.ts +0 -1
  56. package/lib/cjs/types/render/index.d.ts +0 -1
  57. package/lib/cjs/types/render/render.type.d.ts +0 -1
  58. package/lib/package.json +6 -7
  59. package/package.json +6 -7
  60. package/lib/cjs/types/application/app-container.d.ts.map +0 -1
  61. package/lib/cjs/types/application/application-factory.d.ts.map +0 -1
  62. package/lib/cjs/types/application/index.d.ts.map +0 -1
  63. package/lib/cjs/types/common/color-service.provider.d.ts.map +0 -1
  64. package/lib/cjs/types/common/index.d.ts.map +0 -1
  65. package/lib/cjs/types/common/package-resolver.provider.d.ts.map +0 -1
  66. package/lib/cjs/types/common/project-config.provider.d.ts.map +0 -1
  67. package/lib/cjs/types/console/console.d.ts.map +0 -1
  68. package/lib/cjs/types/console/index.d.ts.map +0 -1
  69. package/lib/cjs/types/container-module/container-module.d.ts.map +0 -1
  70. package/lib/cjs/types/container-module/index.d.ts.map +0 -1
  71. package/lib/cjs/types/controller/base-controller.d.ts.map +0 -1
  72. package/lib/cjs/types/controller/index.d.ts.map +0 -1
  73. package/lib/cjs/types/decorator/index.d.ts.map +0 -1
  74. package/lib/cjs/types/decorator/scope-binding.d.ts.map +0 -1
  75. package/lib/cjs/types/error/app-error.d.ts.map +0 -1
  76. package/lib/cjs/types/error/error-handler-middleware.d.ts.map +0 -1
  77. package/lib/cjs/types/error/index.d.ts.map +0 -1
  78. package/lib/cjs/types/error/report.d.ts.map +0 -1
  79. package/lib/cjs/types/error/status-code.d.ts.map +0 -1
  80. package/lib/cjs/types/index.d.ts.map +0 -1
  81. package/lib/cjs/types/middleware/index.d.ts.map +0 -1
  82. package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts.map +0 -1
  83. package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts.map +0 -1
  84. package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts.map +0 -1
  85. package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts.map +0 -1
  86. package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts.map +0 -1
  87. package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts.map +0 -1
  88. package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts.map +0 -1
  89. package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts.map +0 -1
  90. package/lib/cjs/types/middleware/middleware-resolver.d.ts.map +0 -1
  91. package/lib/cjs/types/middleware/middleware-service.d.ts.map +0 -1
  92. package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts.map +0 -1
  93. package/lib/cjs/types/provider/environment/env-validator.provider.d.ts.map +0 -1
  94. package/lib/cjs/types/provider/index.d.ts.map +0 -1
  95. package/lib/cjs/types/provider/logger/logger-service.d.ts.map +0 -1
  96. package/lib/cjs/types/provider/provider-service.d.ts.map +0 -1
  97. package/lib/cjs/types/render/handlebars.interface.d.ts.map +0 -1
  98. package/lib/cjs/types/render/index.d.ts.map +0 -1
  99. package/lib/cjs/types/render/render.type.d.ts.map +0 -1
  100. package/lib/esm/application/app-container.js +0 -82
  101. package/lib/esm/application/application-factory.js +0 -72
  102. package/lib/esm/application/index.js +0 -7
  103. package/lib/esm/common/color-service.provider.js +0 -46
  104. package/lib/esm/common/package-resolver.provider.js +0 -35
  105. package/lib/esm/console/console.js +0 -61
  106. package/lib/esm/console/index.js +0 -5
  107. package/lib/esm/container-module/container-module.js +0 -111
  108. package/lib/esm/container-module/index.js +0 -6
  109. package/lib/esm/controller/base-controller.js +0 -75
  110. package/lib/esm/controller/index.js +0 -5
  111. package/lib/esm/decorator/index.js +0 -17
  112. package/lib/esm/decorator/scope-binding.js +0 -44
  113. package/lib/esm/error/app-error.js +0 -37
  114. package/lib/esm/error/error-handler-middleware.js +0 -28
  115. package/lib/esm/error/index.js +0 -9
  116. package/lib/esm/error/report.js +0 -57
  117. package/lib/esm/error/status-code.js +0 -89
  118. package/lib/esm/index.mjs +0 -26
  119. package/lib/esm/middleware/index.js +0 -5
  120. package/lib/esm/middleware/interfaces/body-parser.interface.js +0 -2
  121. package/lib/esm/middleware/interfaces/compression.interface.js +0 -2
  122. package/lib/esm/middleware/interfaces/cookie-parser.interface.js +0 -2
  123. package/lib/esm/middleware/interfaces/cookie-session/cookie-session.interface.js +0 -2
  124. package/lib/esm/middleware/interfaces/cookie-session/keygrip.interface.js +0 -2
  125. package/lib/esm/middleware/interfaces/cors.interface.js +0 -2
  126. package/lib/esm/middleware/interfaces/serve-favicon.interface.js +0 -2
  127. package/lib/esm/middleware/interfaces/serve-static.interface.js +0 -2
  128. package/lib/esm/middleware/middleware-resolver.js +0 -68
  129. package/lib/esm/middleware/middleware-service.js +0 -242
  130. package/lib/esm/provider/dto-validator/dto-validator.provider.js +0 -53
  131. package/lib/esm/provider/environment/env-validator.provider.js +0 -96
  132. package/lib/esm/provider/index.js +0 -11
  133. package/lib/esm/provider/logger/logger-service.js +0 -115
  134. package/lib/esm/provider/provider-service.js +0 -38
  135. package/lib/esm/render/handlebars.interface.js +0 -2
  136. package/lib/esm/render/index.js +0 -2
  137. package/lib/esm/render/render.type.js +0 -2
  138. package/lib/esm/types/application/app-container.d.ts +0 -126
  139. package/lib/esm/types/application/app-container.d.ts.map +0 -1
  140. package/lib/esm/types/application/application-factory.d.ts +0 -34
  141. package/lib/esm/types/application/application-factory.d.ts.map +0 -1
  142. package/lib/esm/types/application/index.d.ts +0 -3
  143. package/lib/esm/types/application/index.d.ts.map +0 -1
  144. package/lib/esm/types/common/color-service.provider.d.ts +0 -30
  145. package/lib/esm/types/common/color-service.provider.d.ts.map +0 -1
  146. package/lib/esm/types/common/index.d.ts +0 -2
  147. package/lib/esm/types/common/index.d.ts.map +0 -1
  148. package/lib/esm/types/common/package-resolver.provider.d.ts +0 -9
  149. package/lib/esm/types/common/package-resolver.provider.d.ts.map +0 -1
  150. package/lib/esm/types/common/project-config.provider.d.ts +0 -48
  151. package/lib/esm/types/common/project-config.provider.d.ts.map +0 -1
  152. package/lib/esm/types/console/console.d.ts +0 -28
  153. package/lib/esm/types/console/console.d.ts.map +0 -1
  154. package/lib/esm/types/console/index.d.ts +0 -2
  155. package/lib/esm/types/console/index.d.ts.map +0 -1
  156. package/lib/esm/types/container-module/container-module.d.ts +0 -29
  157. package/lib/esm/types/container-module/container-module.d.ts.map +0 -1
  158. package/lib/esm/types/container-module/index.d.ts +0 -2
  159. package/lib/esm/types/container-module/index.d.ts.map +0 -1
  160. package/lib/esm/types/controller/base-controller.d.ts +0 -49
  161. package/lib/esm/types/controller/base-controller.d.ts.map +0 -1
  162. package/lib/esm/types/controller/index.d.ts +0 -2
  163. package/lib/esm/types/controller/index.d.ts.map +0 -1
  164. package/lib/esm/types/decorator/index.d.ts +0 -2
  165. package/lib/esm/types/decorator/index.d.ts.map +0 -1
  166. package/lib/esm/types/decorator/scope-binding.d.ts +0 -34
  167. package/lib/esm/types/decorator/scope-binding.d.ts.map +0 -1
  168. package/lib/esm/types/error/app-error.d.ts +0 -30
  169. package/lib/esm/types/error/app-error.d.ts.map +0 -1
  170. package/lib/esm/types/error/error-handler-middleware.d.ts +0 -12
  171. package/lib/esm/types/error/error-handler-middleware.d.ts.map +0 -1
  172. package/lib/esm/types/error/index.d.ts +0 -4
  173. package/lib/esm/types/error/index.d.ts.map +0 -1
  174. package/lib/esm/types/error/report.d.ts +0 -26
  175. package/lib/esm/types/error/report.d.ts.map +0 -1
  176. package/lib/esm/types/error/status-code.d.ts +0 -137
  177. package/lib/esm/types/error/status-code.d.ts.map +0 -1
  178. package/lib/esm/types/index.d.ts +0 -11
  179. package/lib/esm/types/index.d.ts.map +0 -1
  180. package/lib/esm/types/middleware/index.d.ts +0 -9
  181. package/lib/esm/types/middleware/index.d.ts.map +0 -1
  182. package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts +0 -34
  183. package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts.map +0 -1
  184. package/lib/esm/types/middleware/interfaces/compression.interface.d.ts +0 -99
  185. package/lib/esm/types/middleware/interfaces/compression.interface.d.ts.map +0 -1
  186. package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts +0 -10
  187. package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts.map +0 -1
  188. package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +0 -58
  189. package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts.map +0 -1
  190. package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +0 -28
  191. package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts.map +0 -1
  192. package/lib/esm/types/middleware/interfaces/cors.interface.d.ts +0 -58
  193. package/lib/esm/types/middleware/interfaces/cors.interface.d.ts.map +0 -1
  194. package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts +0 -12
  195. package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts.map +0 -1
  196. package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts +0 -71
  197. package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts.map +0 -1
  198. package/lib/esm/types/middleware/middleware-resolver.d.ts +0 -12
  199. package/lib/esm/types/middleware/middleware-resolver.d.ts.map +0 -1
  200. package/lib/esm/types/middleware/middleware-service.d.ts +0 -222
  201. package/lib/esm/types/middleware/middleware-service.d.ts.map +0 -1
  202. package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +0 -12
  203. package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts.map +0 -1
  204. package/lib/esm/types/provider/environment/env-validator.provider.d.ts +0 -31
  205. package/lib/esm/types/provider/environment/env-validator.provider.d.ts.map +0 -1
  206. package/lib/esm/types/provider/index.d.ts +0 -5
  207. package/lib/esm/types/provider/index.d.ts.map +0 -1
  208. package/lib/esm/types/provider/logger/logger-service.d.ts +0 -50
  209. package/lib/esm/types/provider/logger/logger-service.d.ts.map +0 -1
  210. package/lib/esm/types/provider/provider-service.d.ts +0 -31
  211. package/lib/esm/types/provider/provider-service.d.ts.map +0 -1
  212. package/lib/esm/types/render/handlebars.interface.d.ts +0 -47
  213. package/lib/esm/types/render/handlebars.interface.d.ts.map +0 -1
  214. package/lib/esm/types/render/index.d.ts +0 -3
  215. package/lib/esm/types/render/index.d.ts.map +0 -1
  216. package/lib/esm/types/render/render.type.d.ts +0 -13
  217. package/lib/esm/types/render/render.type.d.ts.map +0 -1
  218. /package/lib/{esm/common/index.js → cjs/middleware/interfaces/express-rate-limit.interface.js} +0 -0
  219. /package/lib/{esm/common/project-config.provider.js → cjs/middleware/interfaces/morgan.interface.js} +0 -0
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var 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 +0,0 @@
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 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var 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
- exports.BaseController = BaseController;
73
- exports.BaseController = BaseController = BaseController_1 = __decorate([
74
- (0, inversify_binding_decorators_1.provide)(BaseController_1)
75
- ], BaseController);
@@ -1,5 +0,0 @@
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 +0,0 @@
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,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.provideTransient = exports.provideSingleton = void 0;
4
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
5
- /* eslint-disable @typescript-eslint/no-explicit-any */
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
- */
22
- const provideSingleton = (identifier) => {
23
- return (0, inversify_binding_decorators_1.fluentProvide)(identifier).inSingletonScope().done();
24
- };
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
- */
41
- const provideTransient = (identifier) => {
42
- return (0, inversify_binding_decorators_1.fluentProvide)(identifier).inTransientScope().done();
43
- };
44
- exports.provideTransient = provideTransient;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppError = void 0;
4
- /**
5
- * The AppError class extends the built-in Error class in JavaScript,
6
- * providing additional properties to manage custom application errors.
7
- * It captures detailed information about the error, including a status code
8
- * and an optional service identifier, which can be useful for error handling
9
- * and logging within the application.
10
- *
11
- * @extends {Error}
12
- */
13
- class AppError extends Error {
14
- /**
15
- * The HTTP status code associated with the error.
16
- * Commonly used to define the HTTP response status code.
17
- */
18
- statusCode;
19
- /**
20
- * The service identifier associated with the error.
21
- * This property can be used to trace the origin of the error in the application.
22
- * It is optional and can be left undefined.
23
- */
24
- service;
25
- /**
26
- * @param {string} message - The error message to be displayed.
27
- * @param {number} [statusCode=500] - The HTTP status code associated with the error (default: 500).
28
- * @param {string} [service] - The service identifier associated with the error.
29
- */
30
- constructor(message, statusCode = 500, service) {
31
- super(message);
32
- this.statusCode = statusCode;
33
- this.service = service;
34
- Error.captureStackTrace(this, this.constructor);
35
- }
36
- }
37
- exports.AppError = AppError;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const app_error_1 = require("./app-error");
4
- const status_code_1 = require("./status-code");
5
- /**
6
- * errorHandler is a custom Express error-handling middleware function.
7
- * It logs the error, sets the status code, and sends a JSON response containing the status code and error message.
8
- * @param error - An instance of IAppError containing error details.
9
- * @param req - The Express request object.
10
- * @param res - The Express response object.
11
- * @param next - The Express next function for passing control to the next middleware function.
12
- */
13
- function defaultErrorHandler(error, req, res,
14
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
- next) {
16
- if (error instanceof app_error_1.AppError) {
17
- res
18
- .status(error.statusCode)
19
- .json({ statusCode: error.statusCode, error: error.message });
20
- }
21
- else {
22
- res.status(status_code_1.StatusCode.InternalServerError).json({
23
- statusCode: status_code_1.StatusCode.InternalServerError,
24
- error: "An unexpected error occurred.",
25
- });
26
- }
27
- }
28
- exports.default = defaultErrorHandler;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppError = exports.Report = exports.StatusCode = void 0;
4
- var status_code_1 = require("./status-code");
5
- Object.defineProperty(exports, "StatusCode", { enumerable: true, get: function () { return status_code_1.StatusCode; } });
6
- var report_1 = require("./report");
7
- Object.defineProperty(exports, "Report", { enumerable: true, get: function () { return report_1.Report; } });
8
- var app_error_1 = require("./app-error");
9
- Object.defineProperty(exports, "AppError", { enumerable: true, get: function () { return app_error_1.AppError; } });
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var Report_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Report = void 0;
14
- const inversify_binding_decorators_1 = require("inversify-binding-decorators");
15
- const logger_service_1 = require("../provider/logger/logger-service");
16
- const app_error_1 = require("./app-error");
17
- /**
18
- * Report class is a utility class to manage and log errors within the application.
19
- * It is responsible for creating a standardized error object, logging it,
20
- * and then throwing the error for further handling.
21
- */
22
- let Report = class Report {
23
- static { Report_1 = this; }
24
- static stack;
25
- logger;
26
- constructor() {
27
- this.logger = new logger_service_1.Logger();
28
- }
29
- /**
30
- * The Error method is responsible for generating a standardized error object,
31
- * logging the error, and then throwing it for further handling.
32
- * The error thrown is of the custom type AppError, which extends the built-in Error class.
33
- *
34
- * @param error - An instance of Error or a string that describes the error.
35
- * @param statusCode - The HTTP status code associated with the error (default is 500).
36
- * @param service - The service name associated with the error. If not specified,
37
- * it defaults to the name of the calling function.
38
- *
39
- * @throws An object of the custom type AppError, which includes details about the error.
40
- */
41
- error(error, statusCode, service) {
42
- let appError = {};
43
- if (error instanceof Error) {
44
- appError = new app_error_1.AppError(error.message, statusCode, service);
45
- }
46
- else {
47
- appError = new app_error_1.AppError(error, statusCode, service);
48
- }
49
- this.logger.error(appError.message, appError.service || "service-undefined");
50
- return appError;
51
- }
52
- };
53
- exports.Report = Report;
54
- exports.Report = Report = Report_1 = __decorate([
55
- (0, inversify_binding_decorators_1.provide)(Report_1),
56
- __metadata("design:paramtypes", [])
57
- ], Report);
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StatusCode = void 0;
4
- /* Http Error Code Response */
5
- var InformationResponse;
6
- (function (InformationResponse) {
7
- InformationResponse[InformationResponse["Continue"] = 100] = "Continue";
8
- InformationResponse[InformationResponse["SwitchingProtocols"] = 101] = "SwitchingProtocols";
9
- InformationResponse[InformationResponse["Processing"] = 102] = "Processing";
10
- InformationResponse[InformationResponse["eEarlyHints"] = 103] = "eEarlyHints";
11
- })(InformationResponse || (InformationResponse = {}));
12
- var SuccessfulResponse;
13
- (function (SuccessfulResponse) {
14
- SuccessfulResponse[SuccessfulResponse["OK"] = 200] = "OK";
15
- SuccessfulResponse[SuccessfulResponse["Created"] = 201] = "Created";
16
- SuccessfulResponse[SuccessfulResponse["Accepted"] = 202] = "Accepted";
17
- SuccessfulResponse[SuccessfulResponse["NonAuthoritativeInformation"] = 203] = "NonAuthoritativeInformation";
18
- SuccessfulResponse[SuccessfulResponse["NoContent"] = 204] = "NoContent";
19
- SuccessfulResponse[SuccessfulResponse["ResetContent"] = 205] = "ResetContent";
20
- SuccessfulResponse[SuccessfulResponse["PartialContent"] = 206] = "PartialContent";
21
- SuccessfulResponse[SuccessfulResponse["MultiStatus"] = 207] = "MultiStatus";
22
- SuccessfulResponse[SuccessfulResponse["AlreadyReported"] = 208] = "AlreadyReported";
23
- SuccessfulResponse[SuccessfulResponse["IMUsed"] = 226] = "IMUsed";
24
- })(SuccessfulResponse || (SuccessfulResponse = {}));
25
- var RedirectionMessage;
26
- (function (RedirectionMessage) {
27
- RedirectionMessage[RedirectionMessage["MultipleChoices"] = 300] = "MultipleChoices";
28
- RedirectionMessage[RedirectionMessage["MovedPermanently"] = 301] = "MovedPermanently";
29
- RedirectionMessage[RedirectionMessage["Found"] = 302] = "Found";
30
- RedirectionMessage[RedirectionMessage["SeeOther"] = 303] = "SeeOther";
31
- RedirectionMessage[RedirectionMessage["NotModified"] = 304] = "NotModified";
32
- RedirectionMessage[RedirectionMessage["TemporaryRedirect"] = 307] = "TemporaryRedirect";
33
- RedirectionMessage[RedirectionMessage["PermanentRedirect"] = 308] = "PermanentRedirect";
34
- })(RedirectionMessage || (RedirectionMessage = {}));
35
- var ClientErrorResponse;
36
- (function (ClientErrorResponse) {
37
- ClientErrorResponse[ClientErrorResponse["BadRequest"] = 400] = "BadRequest";
38
- ClientErrorResponse[ClientErrorResponse["Unauthorized"] = 401] = "Unauthorized";
39
- ClientErrorResponse[ClientErrorResponse["PaymentRequired"] = 402] = "PaymentRequired";
40
- ClientErrorResponse[ClientErrorResponse["Forbidden"] = 403] = "Forbidden";
41
- ClientErrorResponse[ClientErrorResponse["NotFound"] = 404] = "NotFound";
42
- ClientErrorResponse[ClientErrorResponse["MethodNotAllowed"] = 405] = "MethodNotAllowed";
43
- ClientErrorResponse[ClientErrorResponse["NotAcceptable"] = 406] = "NotAcceptable";
44
- ClientErrorResponse[ClientErrorResponse["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired";
45
- ClientErrorResponse[ClientErrorResponse["RequestTimeout"] = 408] = "RequestTimeout";
46
- ClientErrorResponse[ClientErrorResponse["Conflict"] = 409] = "Conflict";
47
- ClientErrorResponse[ClientErrorResponse["Gone"] = 410] = "Gone";
48
- ClientErrorResponse[ClientErrorResponse["LengthRequired"] = 411] = "LengthRequired";
49
- ClientErrorResponse[ClientErrorResponse["PreconditionFailed"] = 412] = "PreconditionFailed";
50
- ClientErrorResponse[ClientErrorResponse["PayloadTooLarge"] = 413] = "PayloadTooLarge";
51
- ClientErrorResponse[ClientErrorResponse["URITooLong"] = 414] = "URITooLong";
52
- ClientErrorResponse[ClientErrorResponse["UnsupportedMediaType"] = 415] = "UnsupportedMediaType";
53
- ClientErrorResponse[ClientErrorResponse["RangeNotSatisfiable"] = 416] = "RangeNotSatisfiable";
54
- ClientErrorResponse[ClientErrorResponse["ExpectationFailed"] = 417] = "ExpectationFailed";
55
- ClientErrorResponse[ClientErrorResponse["ImATeapot"] = 418] = "ImATeapot";
56
- ClientErrorResponse[ClientErrorResponse["MisdirectedRequest"] = 421] = "MisdirectedRequest";
57
- ClientErrorResponse[ClientErrorResponse["UnprocessableEntity"] = 422] = "UnprocessableEntity";
58
- ClientErrorResponse[ClientErrorResponse["Locked"] = 423] = "Locked";
59
- ClientErrorResponse[ClientErrorResponse["FailedDependency"] = 424] = "FailedDependency";
60
- ClientErrorResponse[ClientErrorResponse["TooEarly"] = 425] = "TooEarly";
61
- ClientErrorResponse[ClientErrorResponse["UpgradeRequired"] = 426] = "UpgradeRequired";
62
- ClientErrorResponse[ClientErrorResponse["PreconditionRequired"] = 428] = "PreconditionRequired";
63
- ClientErrorResponse[ClientErrorResponse["TooManyRequests"] = 429] = "TooManyRequests";
64
- ClientErrorResponse[ClientErrorResponse["RequestHeaderFieldsTooLarge"] = 431] = "RequestHeaderFieldsTooLarge";
65
- ClientErrorResponse[ClientErrorResponse["UnavailableForLegalReasons"] = 451] = "UnavailableForLegalReasons";
66
- })(ClientErrorResponse || (ClientErrorResponse = {}));
67
- var ServerErrorResponse;
68
- (function (ServerErrorResponse) {
69
- ServerErrorResponse[ServerErrorResponse["InternalServerError"] = 500] = "InternalServerError";
70
- ServerErrorResponse[ServerErrorResponse["NotImplemented"] = 501] = "NotImplemented";
71
- ServerErrorResponse[ServerErrorResponse["BadGateway"] = 502] = "BadGateway";
72
- ServerErrorResponse[ServerErrorResponse["ServiceUnavailable"] = 503] = "ServiceUnavailable";
73
- ServerErrorResponse[ServerErrorResponse["GatewayTimeout"] = 504] = "GatewayTimeout";
74
- ServerErrorResponse[ServerErrorResponse["HTTPVersionNotSupported"] = 505] = "HTTPVersionNotSupported";
75
- ServerErrorResponse[ServerErrorResponse["VariantAlsoNegotiates"] = 506] = "VariantAlsoNegotiates";
76
- ServerErrorResponse[ServerErrorResponse["InsufficientStorage"] = 507] = "InsufficientStorage";
77
- ServerErrorResponse[ServerErrorResponse["LoopDetected"] = 508] = "LoopDetected";
78
- ServerErrorResponse[ServerErrorResponse["NotExtended"] = 510] = "NotExtended";
79
- ServerErrorResponse[ServerErrorResponse["NetworkAuthenticationRequired"] = 511] = "NetworkAuthenticationRequired";
80
- })(ServerErrorResponse || (ServerErrorResponse = {}));
81
- const HttpStatusErrorCode = {
82
- ...InformationResponse,
83
- ...SuccessfulResponse,
84
- ...RedirectionMessage,
85
- ...ClientErrorResponse,
86
- ...ServerErrorResponse,
87
- };
88
- const StatusCode = { ...HttpStatusErrorCode };
89
- exports.StatusCode = StatusCode;
package/lib/esm/index.mjs DELETED
@@ -1,26 +0,0 @@
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("./application"), exports);
18
- __exportStar(require("./common"), exports);
19
- __exportStar(require("./console"), exports);
20
- __exportStar(require("./container-module"), exports);
21
- __exportStar(require("./controller"), exports);
22
- __exportStar(require("./decorator"), exports);
23
- __exportStar(require("./error"), exports);
24
- __exportStar(require("./middleware"), exports);
25
- __exportStar(require("./provider"), exports);
26
- __exportStar(require("./render"), exports);
@@ -1,5 +0,0 @@
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; } });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,68 +0,0 @@
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
- logger;
13
- constructor() {
14
- this.logger = new logger_service_1.Logger();
15
- }
16
- /**
17
- * A registry object mapping middleware names to their corresponding package names.
18
- * It is used to identify and require the middleware from the current working directory.
19
- */
20
- middlewareRegistry = {
21
- cors: "cors",
22
- compression: "compression",
23
- cookieParser: "cookie-parser",
24
- cookieSession: "cookie-session",
25
- serveFavicon: "serve-favicon",
26
- // Add other middlewares
27
- };
28
- /**
29
- * Retrieves a middleware by its name and optionally configures it with provided options.
30
- *
31
- * @param {string} middlewareName - The name of the middleware to be retrieved.
32
- * @param {...any} options - Optional arguments to configure the middleware.
33
- * @returns {express.RequestHandler | null} - Returns the configured middleware or null if not found or not installed.
34
- */
35
- getMiddleware(middlewareName, ...options) {
36
- const packageName = this.middlewareRegistry[middlewareName];
37
- if (!packageName) {
38
- this.logger.error(`Middleware ${packageName} not found`, "middleware-resolver");
39
- return null;
40
- }
41
- let hasMiddleware = "";
42
- try {
43
- hasMiddleware = require.resolve(packageName, { paths: [process.cwd()] });
44
- }
45
- catch (error) {
46
- this.logger.warn(`Middleware [${packageName}] not installed. Please install it using your package manager.`, "middleware-resolver");
47
- }
48
- if (hasMiddleware) {
49
- // eslint-disable-next-line @typescript-eslint/no-var-requires
50
- const middleware = require(hasMiddleware);
51
- return middleware(...options) || middleware.default(...options);
52
- }
53
- return null;
54
- }
55
- }
56
- /**
57
- * A utility function that wraps the creation and retrieval of middleware.
58
- * It creates a new instance of MiddlewareResolver and calls the getMiddleware method.
59
- *
60
- * @param {string} middleware - The name of the middleware to be retrieved.
61
- * @param {...any} options - Optional arguments to configure the middleware.
62
- * @returns {express.RequestHandler | null} - Returns the configured middleware or null if not found or not installed.
63
- */
64
- function middlewareResolver(middleware, ...options) {
65
- const resolver = new MiddlewareResolver();
66
- return resolver.getMiddleware(middleware, ...options);
67
- }
68
- exports.middlewareResolver = middlewareResolver;