@asenajs/asena 0.1.18 → 0.1.19

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 (273) hide show
  1. package/README.md +75 -64
  2. package/dist/index.d.ts +1 -10
  3. package/dist/index.js +1 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/adapter/AsenaAdapter.d.ts +46 -53
  6. package/dist/lib/adapter/AsenaAdapter.js +22 -11
  7. package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
  8. package/dist/lib/adapter/AsenaContext.d.ts +67 -57
  9. package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +58 -34
  10. package/dist/lib/adapter/AsenaWebsocketAdapter.js +43 -12
  11. package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
  12. package/dist/lib/adapter/hono/HonoAdapter.d.ts +28 -0
  13. package/dist/lib/adapter/{defaultAdapter/DefaultAdapter.js → hono/HonoAdapter.js} +57 -35
  14. package/dist/lib/adapter/hono/HonoAdapter.js.map +1 -0
  15. package/dist/lib/adapter/{defaultAdapter/DefaultContextWrapper.d.ts → hono/HonoContextWrapper.d.ts} +4 -4
  16. package/dist/lib/adapter/{defaultAdapter/DefaultContextWrapper.js → hono/HonoContextWrapper.js} +6 -6
  17. package/dist/lib/adapter/hono/HonoContextWrapper.js.map +1 -0
  18. package/dist/lib/adapter/{defaultAdapter/DefaultWebsocketAdapter.d.ts → hono/HonoWebsocketAdapter.d.ts} +9 -5
  19. package/dist/lib/adapter/{defaultAdapter/DefaultWebsocketAdapter.js → hono/HonoWebsocketAdapter.js} +34 -24
  20. package/dist/lib/adapter/hono/HonoWebsocketAdapter.js.map +1 -0
  21. package/dist/lib/adapter/hono/defaults/ConfigService.d.ts +4 -0
  22. package/dist/lib/adapter/hono/defaults/ConfigService.js +3 -0
  23. package/dist/lib/adapter/hono/defaults/ConfigService.js.map +1 -0
  24. package/dist/lib/adapter/hono/defaults/Context.js +2 -0
  25. package/dist/lib/adapter/hono/defaults/Context.js.map +1 -0
  26. package/dist/lib/adapter/hono/defaults/MiddlewareService.d.ts +5 -0
  27. package/dist/lib/adapter/hono/defaults/MiddlewareService.js +4 -0
  28. package/dist/lib/adapter/hono/defaults/MiddlewareService.js.map +1 -0
  29. package/dist/lib/adapter/hono/defaults/ValidationService.d.ts +10 -0
  30. package/dist/lib/adapter/hono/defaults/ValidationService.js +3 -0
  31. package/dist/lib/adapter/hono/defaults/ValidationService.js.map +1 -0
  32. package/dist/lib/adapter/hono/defaults/index.d.ts +4 -0
  33. package/dist/lib/adapter/hono/defaults/index.js +5 -0
  34. package/dist/lib/adapter/hono/defaults/index.js.map +1 -0
  35. package/dist/lib/adapter/hono/index.d.ts +6 -0
  36. package/dist/lib/adapter/hono/index.js +7 -0
  37. package/dist/lib/adapter/hono/index.js.map +1 -0
  38. package/dist/lib/adapter/hono/types/HonoHandler.d.ts +5 -0
  39. package/dist/lib/adapter/hono/types/HonoHandler.js +2 -0
  40. package/dist/lib/adapter/hono/types/HonoHandler.js.map +1 -0
  41. package/dist/lib/adapter/hono/types/index.d.ts +2 -0
  42. package/dist/lib/adapter/hono/types/index.js +3 -0
  43. package/dist/lib/adapter/hono/types/index.js.map +1 -0
  44. package/dist/lib/adapter/hono/utils/createHonoAdapter.d.ts +3 -0
  45. package/dist/lib/adapter/hono/utils/createHonoAdapter.js +6 -0
  46. package/dist/lib/adapter/hono/utils/createHonoAdapter.js.map +1 -0
  47. package/dist/lib/adapter/hono/utils/middlewareParser.d.ts +4 -0
  48. package/dist/lib/adapter/hono/utils/middlewareParser.js +15 -0
  49. package/dist/lib/adapter/hono/utils/middlewareParser.js.map +1 -0
  50. package/dist/lib/adapter/index.d.ts +1 -0
  51. package/dist/lib/adapter/index.js +1 -0
  52. package/dist/lib/adapter/index.js.map +1 -1
  53. package/dist/lib/adapter/types/AsenaHandler.d.ts +2 -0
  54. package/dist/lib/adapter/types/AsenaHandler.js +2 -0
  55. package/dist/lib/adapter/types/AsenaHandler.js.map +1 -0
  56. package/dist/lib/adapter/types/AsenaMiddlewareHandler.d.ts +2 -0
  57. package/dist/lib/adapter/types/AsenaMiddlewareHandler.js +2 -0
  58. package/dist/lib/adapter/types/AsenaMiddlewareHandler.js.map +1 -0
  59. package/dist/lib/adapter/types/ErrorHandler.d.ts +2 -0
  60. package/dist/lib/adapter/types/ErrorHandler.js +2 -0
  61. package/dist/lib/adapter/types/ErrorHandler.js.map +1 -0
  62. package/dist/lib/adapter/types/RouteParams.d.ts +7 -4
  63. package/dist/lib/adapter/types/ServeOptions.d.ts +7 -0
  64. package/dist/lib/adapter/types/ServeOptions.js +2 -0
  65. package/dist/lib/adapter/types/ServeOptions.js.map +1 -0
  66. package/dist/lib/adapter/types/WebSocketRegistry.d.ts +5 -4
  67. package/dist/lib/adapter/types/WebsocketAdapterParams.d.ts +1 -1
  68. package/dist/lib/adapter/types/index.d.ts +3 -0
  69. package/dist/lib/adapter/types/index.js +3 -0
  70. package/dist/lib/adapter/types/index.js.map +1 -1
  71. package/dist/lib/ioc/Container.d.ts +7 -3
  72. package/dist/lib/ioc/Container.js +68 -72
  73. package/dist/lib/ioc/Container.js.map +1 -1
  74. package/dist/lib/ioc/IocEngine.d.ts +2 -2
  75. package/dist/lib/ioc/IocEngine.js +15 -15
  76. package/dist/lib/ioc/IocEngine.js.map +1 -1
  77. package/dist/lib/ioc/component/componentUtils.d.ts +1 -1
  78. package/dist/lib/ioc/component/componentUtils.js +16 -12
  79. package/dist/lib/ioc/component/componentUtils.js.map +1 -1
  80. package/dist/lib/{server/decorators/components → ioc/component/decorators}/Component.d.ts +1 -1
  81. package/dist/lib/{server/decorators/components → ioc/component/decorators}/Component.js +2 -2
  82. package/dist/lib/ioc/component/decorators/Component.js.map +1 -0
  83. package/dist/lib/ioc/component/decorators/Implements.js +2 -2
  84. package/dist/lib/ioc/component/decorators/Implements.js.map +1 -1
  85. package/dist/lib/ioc/component/decorators/Inject.d.ts +1 -1
  86. package/dist/lib/ioc/component/decorators/Inject.js +6 -7
  87. package/dist/lib/ioc/component/decorators/Inject.js.map +1 -1
  88. package/dist/lib/ioc/component/decorators/PostConstruct.d.ts +6 -0
  89. package/dist/lib/ioc/component/decorators/PostConstruct.js +17 -0
  90. package/dist/lib/ioc/component/decorators/PostConstruct.js.map +1 -0
  91. package/dist/lib/ioc/component/decorators/Strategy.js +6 -6
  92. package/dist/lib/ioc/component/decorators/Strategy.js.map +1 -1
  93. package/dist/lib/ioc/component/decorators/index.d.ts +1 -0
  94. package/dist/lib/ioc/component/decorators/index.js +1 -0
  95. package/dist/lib/ioc/component/decorators/index.js.map +1 -1
  96. package/dist/lib/ioc/component/index.d.ts +1 -0
  97. package/dist/lib/ioc/component/index.js +2 -0
  98. package/dist/lib/ioc/component/index.js.map +1 -0
  99. package/dist/lib/ioc/constants/ComponentConstants.d.ts +4 -2
  100. package/dist/lib/ioc/constants/ComponentConstants.js +3 -1
  101. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  102. package/dist/lib/ioc/helper/fileHelper.d.ts +1 -1
  103. package/dist/lib/ioc/helper/fileHelper.js +9 -3
  104. package/dist/lib/ioc/helper/fileHelper.js.map +1 -1
  105. package/dist/lib/ioc/helper/iocHelper.d.ts +2 -3
  106. package/dist/lib/ioc/helper/iocHelper.js +4 -2
  107. package/dist/lib/ioc/helper/iocHelper.js.map +1 -1
  108. package/dist/lib/ioc/types/{Component.d.ts → InjectableComponent.d.ts} +4 -4
  109. package/dist/lib/ioc/types/InjectableComponent.js +2 -0
  110. package/dist/lib/ioc/types/InjectableComponent.js.map +1 -0
  111. package/dist/lib/ioc/types/IocConfig.d.ts +1 -0
  112. package/dist/lib/ioc/types/decorators/ComponentParams.d.ts +1 -1
  113. package/dist/lib/ioc/types/decorators/ComponentType.d.ts +2 -2
  114. package/dist/lib/ioc/types/decorators/ComponentType.js +1 -1
  115. package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
  116. package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +4 -3
  117. package/dist/lib/ioc/types/decorators/MiddlewareParams.d.ts +1 -1
  118. package/dist/lib/ioc/types/index.d.ts +1 -1
  119. package/dist/lib/ioc/types/index.js +1 -1
  120. package/dist/lib/ioc/types/index.js.map +1 -1
  121. package/dist/lib/{services/logger → logger}/DefaultLogger.d.ts +1 -1
  122. package/dist/lib/logger/DefaultLogger.js.map +1 -0
  123. package/dist/lib/{services/types → logger}/Logger.js.map +1 -1
  124. package/dist/lib/logger/index.d.ts +2 -0
  125. package/dist/lib/logger/index.js +3 -0
  126. package/dist/lib/logger/index.js.map +1 -0
  127. package/dist/lib/server/AsenaServer.d.ts +15 -14
  128. package/dist/lib/server/AsenaServer.js +125 -113
  129. package/dist/lib/server/AsenaServer.js.map +1 -1
  130. package/dist/lib/server/config/AsenaConfig.d.ts +43 -0
  131. package/dist/lib/server/config/AsenaConfig.js +2 -0
  132. package/dist/lib/server/config/AsenaConfig.js.map +1 -0
  133. package/dist/lib/server/decorators/Override.d.ts +4 -4
  134. package/dist/lib/server/decorators/Override.js +11 -7
  135. package/dist/lib/server/decorators/Override.js.map +1 -1
  136. package/dist/lib/server/decorators/components/Config.d.ts +10 -0
  137. package/dist/lib/server/decorators/components/Config.js +14 -0
  138. package/dist/lib/server/decorators/components/Config.js.map +1 -0
  139. package/dist/lib/server/decorators/components/Controller.js +4 -4
  140. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  141. package/dist/lib/server/decorators/components/Middleware.d.ts +1 -1
  142. package/dist/lib/server/decorators/components/Middleware.js +19 -9
  143. package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
  144. package/dist/lib/server/decorators/components/Schedule.d.ts +2 -2
  145. package/dist/lib/server/decorators/components/Schedule.js +7 -7
  146. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  147. package/dist/lib/server/decorators/components/Service.d.ts +1 -1
  148. package/dist/lib/server/decorators/components/Service.js +2 -2
  149. package/dist/lib/server/decorators/components/Service.js.map +1 -1
  150. package/dist/lib/server/decorators/components/WebSocket.js +4 -4
  151. package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
  152. package/dist/lib/server/decorators/components/index.d.ts +1 -2
  153. package/dist/lib/server/decorators/components/index.js +1 -2
  154. package/dist/lib/server/decorators/components/index.js.map +1 -1
  155. package/dist/lib/server/decorators/index.d.ts +2 -1
  156. package/dist/lib/server/decorators/index.js +2 -1
  157. package/dist/lib/server/decorators/index.js.map +1 -1
  158. package/dist/lib/server/index.d.ts +1 -0
  159. package/dist/lib/server/index.js +1 -0
  160. package/dist/lib/server/index.js.map +1 -1
  161. package/dist/lib/server/types/Class.d.ts +0 -3
  162. package/dist/lib/server/web/decorators/http.base.d.ts +4 -0
  163. package/dist/lib/server/web/decorators/http.base.js +35 -0
  164. package/dist/lib/server/web/decorators/http.base.js.map +1 -0
  165. package/dist/lib/server/web/decorators/index.d.ts +4 -0
  166. package/dist/lib/server/web/decorators/index.js +5 -0
  167. package/dist/lib/server/web/decorators/index.js.map +1 -0
  168. package/dist/lib/server/web/decorators/methods/Connect.d.ts +7 -0
  169. package/dist/lib/server/web/decorators/methods/Connect.js +12 -0
  170. package/dist/lib/server/web/decorators/methods/Connect.js.map +1 -0
  171. package/dist/lib/server/web/decorators/methods/Delete.d.ts +7 -0
  172. package/dist/lib/server/web/decorators/methods/Delete.js +12 -0
  173. package/dist/lib/server/web/decorators/methods/Delete.js.map +1 -0
  174. package/dist/lib/server/web/decorators/methods/Get.d.ts +7 -0
  175. package/dist/lib/server/web/decorators/methods/Get.js +12 -0
  176. package/dist/lib/server/web/decorators/methods/Get.js.map +1 -0
  177. package/dist/lib/server/web/decorators/methods/Head.d.ts +7 -0
  178. package/dist/lib/server/web/decorators/methods/Head.js +12 -0
  179. package/dist/lib/server/web/decorators/methods/Head.js.map +1 -0
  180. package/dist/lib/server/web/decorators/methods/Options.d.ts +7 -0
  181. package/dist/lib/server/web/decorators/methods/Options.js +12 -0
  182. package/dist/lib/server/web/decorators/methods/Options.js.map +1 -0
  183. package/dist/lib/server/web/decorators/methods/Patch.d.ts +7 -0
  184. package/dist/lib/server/web/decorators/methods/Patch.js +12 -0
  185. package/dist/lib/server/web/decorators/methods/Patch.js.map +1 -0
  186. package/dist/lib/server/web/decorators/methods/Post.d.ts +7 -0
  187. package/dist/lib/server/web/decorators/methods/Post.js +12 -0
  188. package/dist/lib/server/web/decorators/methods/Post.js.map +1 -0
  189. package/dist/lib/server/web/decorators/methods/Put.d.ts +7 -0
  190. package/dist/lib/server/web/decorators/methods/Put.js +12 -0
  191. package/dist/lib/server/web/decorators/methods/Put.js.map +1 -0
  192. package/dist/lib/server/web/decorators/methods/Trace.d.ts +7 -0
  193. package/dist/lib/server/web/decorators/methods/Trace.js +12 -0
  194. package/dist/lib/server/web/decorators/methods/Trace.js.map +1 -0
  195. package/dist/lib/server/web/decorators/methods/index.d.ts +9 -0
  196. package/dist/lib/server/web/decorators/methods/index.js +10 -0
  197. package/dist/lib/server/web/decorators/methods/index.js.map +1 -0
  198. package/dist/lib/server/web/helper/middlewareHelper.d.ts +7 -1
  199. package/dist/lib/server/web/helper/middlewareHelper.js +11 -5
  200. package/dist/lib/server/web/helper/middlewareHelper.js.map +1 -1
  201. package/dist/lib/server/web/http/HttpStatus.d.ts +69 -67
  202. package/dist/lib/server/web/http/HttpStatus.js +69 -68
  203. package/dist/lib/server/web/http/HttpStatus.js.map +1 -1
  204. package/dist/lib/server/web/middleware/AsenaMiddlewareService.d.ts +8 -10
  205. package/dist/lib/server/web/middleware/AsenaMiddlewareService.js +1 -4
  206. package/dist/lib/server/web/middleware/AsenaMiddlewareService.js.map +1 -1
  207. package/dist/lib/server/web/middleware/AsenaValidationService.d.ts +15 -16
  208. package/dist/lib/server/web/middleware/AsenaValidationService.js +1 -8
  209. package/dist/lib/server/web/middleware/AsenaValidationService.js.map +1 -1
  210. package/dist/lib/server/web/types/ApiParams.d.ts +73 -0
  211. package/dist/lib/server/web/types/ApiParams.js +2 -0
  212. package/dist/lib/server/web/types/ApiParams.js.map +1 -0
  213. package/dist/lib/server/web/types/BaseMiddleware.d.ts +50 -5
  214. package/dist/lib/server/web/types/BaseMiddleware.js +1 -1
  215. package/dist/lib/server/web/types/BaseMiddleware.js.map +1 -1
  216. package/dist/lib/server/web/types/index.d.ts +1 -1
  217. package/dist/lib/server/web/types/index.js +1 -1
  218. package/dist/lib/server/web/types/index.js.map +1 -1
  219. package/dist/lib/server/web/websocket/AsenaSocket.js +1 -0
  220. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  221. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +39 -0
  222. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +40 -0
  223. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  224. package/dist/lib/server/web/websocket/AsenaWebSocketService.js +4 -4
  225. package/dist/lib/server/web/websocket/AsenaWebSocketService.js.map +1 -1
  226. package/dist/lib/utils/typedMetadata.d.ts +2 -0
  227. package/dist/lib/utils/typedMetadata.js +13 -0
  228. package/dist/lib/utils/typedMetadata.js.map +1 -0
  229. package/package.json +53 -5
  230. package/dist/lib/adapter/defaultAdapter/DefaultAdapter.d.ts +0 -26
  231. package/dist/lib/adapter/defaultAdapter/DefaultAdapter.js.map +0 -1
  232. package/dist/lib/adapter/defaultAdapter/DefaultContextWrapper.js.map +0 -1
  233. package/dist/lib/adapter/defaultAdapter/DefaultWebsocketAdapter.js.map +0 -1
  234. package/dist/lib/adapter/defaultAdapter/index.d.ts +0 -3
  235. package/dist/lib/adapter/defaultAdapter/index.js +0 -4
  236. package/dist/lib/adapter/defaultAdapter/index.js.map +0 -1
  237. package/dist/lib/adapter/defaultAdapter/types/Defaultcontext.js +0 -2
  238. package/dist/lib/adapter/defaultAdapter/types/Defaultcontext.js.map +0 -1
  239. package/dist/lib/adapter/defaultAdapter/types/Handler.d.ts +0 -4
  240. package/dist/lib/adapter/defaultAdapter/types/Handler.js +0 -2
  241. package/dist/lib/adapter/defaultAdapter/types/Handler.js.map +0 -1
  242. package/dist/lib/adapter/defaultAdapter/types/index.d.ts +0 -2
  243. package/dist/lib/adapter/defaultAdapter/types/index.js +0 -3
  244. package/dist/lib/adapter/defaultAdapter/types/index.js.map +0 -1
  245. package/dist/lib/ioc/types/Component.js +0 -2
  246. package/dist/lib/ioc/types/Component.js.map +0 -1
  247. package/dist/lib/server/decorators/components/Component.js.map +0 -1
  248. package/dist/lib/server/decorators/components/ServerService.d.ts +0 -9
  249. package/dist/lib/server/decorators/components/ServerService.js +0 -13
  250. package/dist/lib/server/decorators/components/ServerService.js.map +0 -1
  251. package/dist/lib/server/web/api/apiHandler.d.ts +0 -55
  252. package/dist/lib/server/web/api/apiHandler.js +0 -107
  253. package/dist/lib/server/web/api/apiHandler.js.map +0 -1
  254. package/dist/lib/server/web/api/index.d.ts +0 -1
  255. package/dist/lib/server/web/api/index.js +0 -2
  256. package/dist/lib/server/web/api/index.js.map +0 -1
  257. package/dist/lib/server/web/types/ApiHandler.d.ts +0 -22
  258. package/dist/lib/server/web/types/ApiHandler.js +0 -2
  259. package/dist/lib/server/web/types/ApiHandler.js.map +0 -1
  260. package/dist/lib/services/index.d.ts +0 -3
  261. package/dist/lib/services/index.js +0 -4
  262. package/dist/lib/services/index.js.map +0 -1
  263. package/dist/lib/services/logger/DefaultLogger.js.map +0 -1
  264. package/dist/lib/services/serverService/AsenaService.d.ts +0 -7
  265. package/dist/lib/services/serverService/AsenaService.js +0 -7
  266. package/dist/lib/services/serverService/AsenaService.js.map +0 -1
  267. package/dist/lib/services/types/index.d.ts +0 -2
  268. package/dist/lib/services/types/index.js +0 -3
  269. package/dist/lib/services/types/index.js.map +0 -1
  270. /package/dist/lib/adapter/{defaultAdapter/types/Defaultcontext.d.ts → hono/defaults/Context.d.ts} +0 -0
  271. /package/dist/lib/{services/logger → logger}/DefaultLogger.js +0 -0
  272. /package/dist/lib/{services/types → logger}/Logger.d.ts +0 -0
  273. /package/dist/lib/{services/types → logger}/Logger.js +0 -0
@@ -1,5 +1,5 @@
1
- import { getMetadata } from 'reflect-metadata/no-conflict';
2
1
  import { ComponentConstants } from './constants';
2
+ import { getTypedMetadata } from '../utils/typedMetadata';
3
3
  export class Container {
4
4
  _services = {};
5
5
  constructor(services) {
@@ -19,90 +19,91 @@ export class Container {
19
19
  }
20
20
  this._services[key] = { Class, instance: singleton ? this.prepareInstance(Class) : null, singleton };
21
21
  }
22
- get(key) {
23
- // Todo: return error
22
+ async resolve(key) {
24
23
  const service = this._services[key];
25
24
  if (!service) {
26
- return null;
25
+ throw new Error(key + ' is not registered');
27
26
  }
28
27
  if (Array.isArray(service)) {
29
- return service.map((containerService) => {
30
- if (!containerService.singleton) {
31
- return this.prepareInstance(containerService.Class);
32
- }
33
- if (!containerService.instance) {
34
- throw new Error('instance cannot be null');
35
- }
36
- return containerService.instance;
37
- });
38
- }
39
- if (!service.singleton) {
40
- return this.prepareInstance(service.Class);
28
+ return await this.resolveMultipleContainerService(service);
41
29
  }
42
- return service.instance;
30
+ return await this.resolveContainerService(service);
43
31
  }
44
- getStrategy(key) {
45
- return this.get(key);
32
+ resolveStrategy(key) {
33
+ return this.resolve(key);
46
34
  }
47
35
  /**
48
36
  * @typeOfComponent is the type of the component
49
37
  *
50
38
  * */
51
- getAll(typeOfComponent) {
52
- const service = Object.entries(this._services)
39
+ async resolveAll(typeOfComponent) {
40
+ const matchingServices = this.filterServices(typeOfComponent);
41
+ if (!matchingServices.length) {
42
+ return null;
43
+ }
44
+ const instances = [];
45
+ for (const containerService of matchingServices) {
46
+ if (Array.isArray(containerService)) {
47
+ instances.push(await this.resolveMultipleContainerService(containerService));
48
+ }
49
+ else {
50
+ instances.push(await this.resolveContainerService(containerService));
51
+ }
52
+ }
53
+ return instances;
54
+ }
55
+ filterServices(typeOfComponent) {
56
+ return Object.entries(this._services)
53
57
  .filter(([, value]) => {
54
58
  if (Array.isArray(value)) {
55
59
  // check every element in the array is the same type
56
60
  return value.every((service) => {
57
- return getMetadata(typeOfComponent, service.Class);
61
+ return getTypedMetadata(typeOfComponent, service.Class);
58
62
  });
59
63
  }
60
- return getMetadata(typeOfComponent, value.Class);
64
+ return getTypedMetadata(typeOfComponent, value.Class);
61
65
  })
62
66
  .map(([, value]) => value);
63
- if (!service) {
64
- return null;
67
+ }
68
+ async resolveContainerService(containerService) {
69
+ if (!containerService.singleton) {
70
+ return await this.prepareInstance(containerService.Class);
65
71
  }
66
- if (service.length > 0) {
67
- return service.map((containerService) => {
68
- if (Array.isArray(containerService)) {
69
- return containerService.map((_service) => {
70
- if (!_service.singleton) {
71
- return this.prepareInstance(_service.Class);
72
- }
73
- if (!_service.instance) {
74
- throw new Error('instance cannot be null');
75
- }
76
- return _service.instance;
77
- });
78
- }
79
- if (!containerService.singleton) {
80
- return this.prepareInstance(containerService.Class);
81
- }
82
- if (!containerService.instance) {
83
- throw new Error('instance cannot be null');
84
- }
85
- return containerService.instance;
86
- });
72
+ if (!containerService.instance) {
73
+ throw new Error('instance cannot be null');
87
74
  }
88
- return null;
75
+ return containerService.instance;
76
+ }
77
+ async resolveMultipleContainerService(containerService) {
78
+ return Promise.all(containerService.map(async (_service) => this.resolveContainerService(_service)));
89
79
  }
90
- prepareInstance(Class) {
80
+ async prepareInstance(Class) {
91
81
  const newInstance = new Class();
92
- this.injectDependencies(newInstance, Class); // dependency injection
93
- this.injectStrategies(newInstance, Class); // strategy injection
82
+ await this.injectDependencies(newInstance, Class); // dependency injection
83
+ await this.injectStrategies(newInstance, Class); // strategy injection
84
+ await this.executePostConstructs(newInstance, Class); // post construct
94
85
  return newInstance;
95
86
  }
96
- injectStrategies(newInstance, Class) {
97
- for (const [propertyKey, interfaceName] of Object.entries(getMetadata(ComponentConstants.StrategyKey, Class))) {
87
+ async executePostConstructs(newInstance, Class) {
88
+ const postConstructs = getTypedMetadata(ComponentConstants.PostConstructKey, Class);
89
+ if (!postConstructs) {
90
+ return;
91
+ }
92
+ for (const postConstruct of postConstructs) {
93
+ await newInstance[postConstruct]();
94
+ }
95
+ }
96
+ async injectStrategies(newInstance, Class) {
97
+ const strategyList = getTypedMetadata(ComponentConstants.StrategyKey, Class);
98
+ for (const [propertyKey, interfaceName] of Object.entries(strategyList)) {
98
99
  if (!interfaceName) {
99
100
  continue;
100
101
  }
101
102
  if (typeof interfaceName !== 'string') {
102
103
  throw new Error('interfaceName must be a string');
103
104
  }
104
- const strategy = this.getStrategy(interfaceName);
105
- const expression = getMetadata(ComponentConstants.ExpressionKey, Class);
105
+ const strategy = await this.resolveStrategy(interfaceName);
106
+ const expression = getTypedMetadata(ComponentConstants.ExpressionKey, Class);
106
107
  Object.defineProperty(newInstance, propertyKey, {
107
108
  get() {
108
109
  return expression && expression[propertyKey] ? strategy.map((s) => expression[propertyKey](s)) : strategy;
@@ -112,29 +113,24 @@ export class Container {
112
113
  });
113
114
  }
114
115
  }
115
- injectDependencies(newInstance, Class) {
116
- for (const [k, V] of Object.entries(getMetadata(ComponentConstants.DependencyKey, Class))) {
117
- const name = getMetadata(ComponentConstants.NameKey, V) || V.name;
118
- const instance = this.get(name);
116
+ async injectDependencies(newInstance, Class) {
117
+ const deps = getTypedMetadata(ComponentConstants.DependencyKey, Class);
118
+ for (const [k, name] of Object.entries(deps)) {
119
+ const instance = await this.resolve(name);
119
120
  if (instance === null) {
120
- throw new Error('Instance cant be null ' + V);
121
+ throw new Error('Instance cant be null ' + name);
121
122
  }
122
123
  if (Array.isArray(instance) && instance.length < 1) {
123
124
  throw new Error('instance error cannot be null');
124
125
  }
125
- if (instance instanceof V) {
126
- if (getMetadata(ComponentConstants.IsMiddlewareKey, instance.constructor)) {
127
- continue;
128
- }
129
- const expression = getMetadata(ComponentConstants.ExpressionKey, Class);
130
- Object.defineProperty(newInstance, k, {
131
- get: () => {
132
- return expression && expression[k] ? expression[k](instance) : instance;
133
- },
134
- enumerable: true,
135
- configurable: true,
136
- });
137
- }
126
+ const expression = getTypedMetadata(ComponentConstants.ExpressionKey, Class);
127
+ Object.defineProperty(newInstance, k, {
128
+ get: () => {
129
+ return expression && expression[k] ? expression[k](instance) : instance;
130
+ },
131
+ enumerable: true,
132
+ configurable: true,
133
+ });
138
134
  }
139
135
  }
140
136
  get services() {
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/ioc/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/ioc/Container.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import type { Component, IocConfig } from './types';
1
+ import type { InjectableComponent, IocConfig } from './types';
2
2
  import { Container } from './Container';
3
3
  export declare class IocEngine {
4
4
  private readonly _container;
5
5
  private injectables;
6
6
  private readonly config;
7
7
  constructor(config?: IocConfig);
8
- searchAndRegister(components?: Component[]): Promise<void>;
8
+ searchAndRegister(components?: InjectableComponent[]): Promise<void>;
9
9
  private loadComponents;
10
10
  private validateAndRegisterComponents;
11
11
  private register;
@@ -2,11 +2,11 @@ import { Scope } from './types';
2
2
  import { Container } from './Container';
3
3
  import { getAllFiles } from './helper/fileHelper';
4
4
  import * as path from 'node:path';
5
- import { getMetadata } from 'reflect-metadata/no-conflict';
6
5
  import { ComponentConstants } from './constants';
7
6
  import * as process from 'node:process';
8
7
  import * as console from 'node:console';
9
8
  import { getStrategyClass } from './helper/iocHelper';
9
+ import { getTypedMetadata } from '../utils/typedMetadata';
10
10
  export class IocEngine {
11
11
  _container;
12
12
  injectables = [];
@@ -42,10 +42,10 @@ export class IocEngine {
42
42
  }
43
43
  register(injectables) {
44
44
  for (const injectable of injectables) {
45
- const name = getMetadata(ComponentConstants.NameKey, injectable) || injectable.name;
46
- const isSingleton = getMetadata(ComponentConstants.ScopeKey, injectable) === Scope.SINGLETON;
45
+ const name = getTypedMetadata(ComponentConstants.NameKey, injectable) || injectable.name;
46
+ const isSingleton = getTypedMetadata(ComponentConstants.ScopeKey, injectable) === Scope.SINGLETON;
47
47
  this._container.register(name, injectable, isSingleton);
48
- const _interface = getMetadata(ComponentConstants.InterfaceKey, injectable);
48
+ const _interface = getTypedMetadata(ComponentConstants.InterfaceKey, injectable);
49
49
  if (_interface) {
50
50
  this._container.register(_interface, injectable, isSingleton);
51
51
  }
@@ -80,7 +80,7 @@ export class IocEngine {
80
80
  }
81
81
  isValidComponent(component) {
82
82
  try {
83
- return !!getMetadata(ComponentConstants.IOCObjectKey, component);
83
+ return !!getTypedMetadata(ComponentConstants.IOCObjectKey, component);
84
84
  }
85
85
  catch {
86
86
  return false;
@@ -88,7 +88,7 @@ export class IocEngine {
88
88
  }
89
89
  createComponentObject(component) {
90
90
  try {
91
- const _interface = getMetadata(ComponentConstants.InterfaceKey, component);
91
+ const _interface = getTypedMetadata(ComponentConstants.InterfaceKey, component);
92
92
  return {
93
93
  Class: component,
94
94
  interface: _interface,
@@ -136,19 +136,18 @@ export class IocEngine {
136
136
  // eslint-disable-next-line max-params
137
137
  initializeGraph(classes, injectables, inDegree, adjacencyList, nameToClass) {
138
138
  classes.forEach((cls) => {
139
- const name = cls.name;
139
+ const name = getTypedMetadata(ComponentConstants.NameKey, cls) || cls.name;
140
140
  nameToClass.set(name, cls);
141
141
  inDegree.set(name, 0);
142
142
  adjacencyList.set(name, []);
143
143
  });
144
144
  classes.forEach((cls) => {
145
- const name = cls.name;
145
+ const name = getTypedMetadata(ComponentConstants.NameKey, cls) || cls.name;
146
146
  const dependencies = [...this.getDependencies(cls), ...this.getStrategyDependencies(cls, injectables)];
147
147
  dependencies.forEach((dep) => {
148
148
  if (dep) {
149
- const depName = dep.name;
150
- adjacencyList.get(name)?.push(depName);
151
- inDegree.set(depName, (inDegree.get(depName) || 0) + 1);
149
+ adjacencyList.get(name)?.push(dep);
150
+ inDegree.set(dep, (inDegree.get(dep) || 0) + 1);
152
151
  }
153
152
  });
154
153
  });
@@ -186,13 +185,14 @@ export class IocEngine {
186
185
  }
187
186
  getDependencies(component) {
188
187
  try {
189
- const directDependencies = Object.values(getMetadata(ComponentConstants.DependencyKey, component) || {});
188
+ const directDependencies = Object.values(getTypedMetadata(ComponentConstants.DependencyKey, component) || {});
189
+ const softDependencies = Object.values(getTypedMetadata(ComponentConstants.SoftDependencyKey, component) || {});
190
190
  const parentClass = Object.getPrototypeOf(component);
191
191
  if (parentClass && parentClass !== Object.prototype) {
192
192
  const parentDependencies = this.getDependencies(parentClass);
193
- return [...new Set([...directDependencies, ...parentDependencies])];
193
+ return [...new Set([...directDependencies, ...parentDependencies, ...softDependencies])];
194
194
  }
195
- return directDependencies;
195
+ return [...new Set(...directDependencies, ...softDependencies)];
196
196
  }
197
197
  catch {
198
198
  return [];
@@ -200,7 +200,7 @@ export class IocEngine {
200
200
  }
201
201
  getStrategyDependencies(component, injectables) {
202
202
  try {
203
- const strategyMeta = getMetadata(ComponentConstants.StrategyKey, component);
203
+ const strategyMeta = getTypedMetadata(ComponentConstants.StrategyKey, component);
204
204
  const directStrategies = getStrategyClass(strategyMeta, injectables);
205
205
  const parentClass = Object.getPrototypeOf(component);
206
206
  if (parentClass && parentClass !== Object.prototype) {
@@ -1 +1 @@
1
- {"version":3,"file":"IocEngine.js","sourceRoot":"","sources":["../../../lib/ioc/IocEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IocEngine.js","sourceRoot":"","sources":["../../../lib/ioc/IocEngine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import type { ComponentParams, ComponentType } from '../types';
1
+ import { type ComponentParams, ComponentType } from '../types';
2
2
  export declare const defineComponent: <T extends ComponentParams>(componentType: ComponentType, params: T | string, extra?: (target: Function) => void) => ClassDecorator;
@@ -1,26 +1,30 @@
1
- import { Scope } from '../types';
2
- import { defineMetadata, getMetadata } from 'reflect-metadata/no-conflict';
1
+ import { ComponentType, Scope, } from '../types';
3
2
  import { ComponentConstants } from '../constants';
3
+ import { defineTypedMetadata, getTypedMetadata } from '../../utils/typedMetadata';
4
4
  export const defineComponent = (componentType, params, extra) => {
5
5
  return (target) => {
6
- const { scope = Scope.SINGLETON, name = target.name } = paramsGenerator(params);
7
- defineMetadata(componentType, true, target);
8
- defineMetadata(ComponentConstants.IOCObjectKey, true, target);
9
- defineMetadata(ComponentConstants.ScopeKey, scope, target);
10
- defineMetadata(ComponentConstants.NameKey, name, target);
6
+ const { scope = Scope.SINGLETON, name = target.name } = paramsGenerator(params, componentType);
7
+ defineTypedMetadata(componentType, true, target);
8
+ defineTypedMetadata(ComponentConstants.IOCObjectKey, true, target);
9
+ defineTypedMetadata(ComponentConstants.ScopeKey, scope, target);
10
+ defineTypedMetadata(ComponentConstants.NameKey, name, target);
11
11
  if (extra) {
12
12
  extra(target);
13
13
  }
14
- if (getMetadata(ComponentConstants.DependencyKey, target) === undefined) {
15
- defineMetadata(ComponentConstants.DependencyKey, {}, target);
14
+ if (getTypedMetadata(ComponentConstants.DependencyKey, target) === undefined) {
15
+ defineTypedMetadata(ComponentConstants.DependencyKey, {}, target);
16
16
  }
17
- if (getMetadata(ComponentConstants.StrategyKey, target) === undefined) {
18
- defineMetadata(ComponentConstants.StrategyKey, {}, target);
17
+ if (getTypedMetadata(ComponentConstants.StrategyKey, target) === undefined) {
18
+ defineTypedMetadata(ComponentConstants.StrategyKey, {}, target);
19
19
  }
20
20
  };
21
21
  };
22
- const paramsGenerator = (params) => {
22
+ const paramsGenerator = (params, componentType) => {
23
23
  const defaultParam = { name: undefined, scope: undefined };
24
+ if (typeof params === 'string' &&
25
+ (componentType === ComponentType.CONTROLLER || componentType === ComponentType.WEBSOCKET)) {
26
+ return defaultParam;
27
+ }
24
28
  return typeof params === 'string' ? { name: params } : params || defaultParam;
25
29
  };
26
30
  //# sourceMappingURL=componentUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../../lib/ioc/component/componentUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAA4B,EAC5B,MAAkB,EAClB,KAAkC,EAClB,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEhF,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5C,cAAc,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9D,cAAc,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACxE,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACtE,cAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAgC,EAAmC,EAAE;IAC5F,MAAM,YAAY,GAAoC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE5F,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC;AAChF,CAAC,CAAC"}
1
+ {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../../lib/ioc/component/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,KAAK,GAGN,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAA4B,EAC5B,MAAkB,EAClB,KAAkC,EAClB,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE/F,mBAAmB,CAAU,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE1D,mBAAmB,CAAU,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5E,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvE,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,gBAAgB,CAAe,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3F,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,gBAAgB,CAAa,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACvF,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,MAAgC,EAChC,aAA4B,EACK,EAAE;IACnC,MAAM,YAAY,GAAoC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE5F,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,aAAa,KAAK,aAAa,CAAC,UAAU,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,EACzF,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC;AAChF,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ComponentParams } from "../../../ioc/types";
1
+ import { type ComponentParams } from '../../types';
2
2
  /**
3
3
  * Decorator for defining a generic Component.
4
4
  *
@@ -1,5 +1,5 @@
1
- import { ComponentType } from "../../../ioc/types";
2
- import { defineComponent } from "../../../ioc/component/componentUtils";
1
+ import { ComponentType } from '../../types';
2
+ import { defineComponent } from '../componentUtils';
3
3
  /**
4
4
  * Decorator for defining a generic Component.
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC7E,OAAO,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { defineMetadata } from 'reflect-metadata/no-conflict';
2
1
  import { ComponentConstants } from '../../constants';
2
+ import { defineTypedMetadata } from '../../../utils/typedMetadata';
3
3
  /**
4
4
  * A class decorator that adds metadata to the target class.
5
5
  *
@@ -8,7 +8,7 @@ import { ComponentConstants } from '../../constants';
8
8
  */
9
9
  export function Implements(implement) {
10
10
  return (target) => {
11
- defineMetadata(ComponentConstants.InterfaceKey, implement, target);
11
+ defineTypedMetadata(ComponentConstants.InterfaceKey, implement, target);
12
12
  };
13
13
  }
14
14
  //# sourceMappingURL=Implements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Implements.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Implements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,cAAc,CAAC,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Implements.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Implements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,mBAAmB,CAAS,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC,CAAC;AACJ,CAAC"}
@@ -6,4 +6,4 @@ import type { Class } from '../../../server/types';
6
6
  * @param expression - The expression to evaluate on the injected class.
7
7
  * @returns {PropertyDecorator} - The property decorator function.
8
8
  */
9
- export declare const Inject: (Injection: Class, expression?: (injectedClass: any) => any) => PropertyDecorator;
9
+ export declare const Inject: (Injection: Class | string, expression?: (injectedClass: any) => any) => PropertyDecorator;
@@ -1,5 +1,5 @@
1
- import { defineMetadata, getMetadata } from 'reflect-metadata/no-conflict';
2
1
  import { ComponentConstants } from '../../constants';
2
+ import { defineTypedMetadata, getTypedMetadata } from '../../../utils/typedMetadata';
3
3
  /**
4
4
  * Property decorator to inject a dependency.
5
5
  *
@@ -9,18 +9,17 @@ import { ComponentConstants } from '../../constants';
9
9
  */
10
10
  export const Inject = (Injection, expression) => {
11
11
  return (target, propertyKey) => {
12
- const dependencies = getMetadata(ComponentConstants.DependencyKey, target.constructor) || {};
13
- defineMetadata('design:type', Injection, target, propertyKey);
12
+ const dependencies = getTypedMetadata(ComponentConstants.DependencyKey, target.constructor) || {};
14
13
  if (!dependencies[propertyKey]) {
15
- dependencies[propertyKey] = Injection;
14
+ dependencies[propertyKey] = typeof Injection === 'string' ? Injection : Injection.name;
16
15
  }
17
- defineMetadata(ComponentConstants.DependencyKey, dependencies, target.constructor);
16
+ defineTypedMetadata(ComponentConstants.DependencyKey, dependencies, target.constructor);
18
17
  if (expression) {
19
- const expressions = getMetadata(ComponentConstants.ExpressionKey, target.constructor) || {};
18
+ const expressions = getTypedMetadata(ComponentConstants.ExpressionKey, target.constructor) || {};
20
19
  if (!expressions[propertyKey]) {
21
20
  expressions[propertyKey] = expression;
22
21
  }
23
- defineMetadata(ComponentConstants.ExpressionKey, expressions, target.constructor);
22
+ defineTypedMetadata(ComponentConstants.ExpressionKey, expressions, target.constructor);
24
23
  }
25
24
  };
26
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAgB,EAAE,UAAuC,EAAqB,EAAE;IACrG,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAO,EAAE;QAClD,MAAM,YAAY,GAAe,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzG,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEnF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAe,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAExG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;YACxC,CAAC;YAED,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Inject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAyB,EAAE,UAAwC,EAAqB,EAAE;IAC/G,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAQ,EAAE;QACnD,MAAM,YAAY,GAChB,gBAAgB,CAAe,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAE7F,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QACzF,CAAC;QAED,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtG,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GACf,gBAAgB,CAAc,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAE5F,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;YACxC,CAAC;YAED,mBAAmB,CAAc,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * A decorator that marks a method to be called after the component's construction.
3
+ *
4
+ * @returns {PropertyDecorator} The property decorator function.
5
+ */
6
+ export declare const PostConstruct: () => PropertyDecorator;
@@ -0,0 +1,17 @@
1
+ import { ComponentConstants } from '../../constants';
2
+ import { defineTypedMetadata, getTypedMetadata } from '../../../utils/typedMetadata';
3
+ /**
4
+ * A decorator that marks a method to be called after the component's construction.
5
+ *
6
+ * @returns {PropertyDecorator} The property decorator function.
7
+ */
8
+ export const PostConstruct = () => {
9
+ return (target, propertyKey) => {
10
+ const postConstructs = getTypedMetadata(ComponentConstants.PostConstructKey, target.constructor) || [];
11
+ if (!postConstructs.includes(propertyKey)) {
12
+ postConstructs.push(propertyKey);
13
+ }
14
+ defineTypedMetadata(ComponentConstants.PostConstructKey, postConstructs, target.constructor);
15
+ };
16
+ };
17
+ //# sourceMappingURL=PostConstruct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostConstruct.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/PostConstruct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAsB,EAAE;IACnD,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAQ,EAAE;QACnD,MAAM,cAAc,GAClB,gBAAgB,CAAW,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAE5F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,mBAAmB,CAAW,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACzG,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { defineMetadata, getMetadata } from 'reflect-metadata/no-conflict';
2
1
  import { ComponentConstants } from '../../constants';
2
+ import { defineTypedMetadata, getTypedMetadata } from '../../../utils/typedMetadata';
3
3
  /**
4
4
  * Property decorator to define a strategy.
5
5
  *
@@ -9,20 +9,20 @@ import { ComponentConstants } from '../../constants';
9
9
  */
10
10
  export const Strategy = (Injection, expression) => {
11
11
  return (target, propertyKey) => {
12
- const strategies = getMetadata(ComponentConstants.StrategyKey, target.constructor) || {};
13
- defineMetadata('design:type', Injection, target, propertyKey);
12
+ const strategies = getTypedMetadata(ComponentConstants.StrategyKey, target.constructor) || {};
13
+ defineTypedMetadata('design:type', Injection, target, propertyKey);
14
14
  const injectionName = typeof Injection === 'string' ? Injection : Injection.name;
15
15
  if (!strategies[propertyKey]) {
16
16
  strategies[propertyKey] = injectionName;
17
17
  }
18
18
  if (expression) {
19
- const expressions = getMetadata(ComponentConstants.ExpressionKey, target.constructor) || {};
19
+ const expressions = getTypedMetadata(ComponentConstants.ExpressionKey, target.constructor) || {};
20
20
  if (!expressions[propertyKey]) {
21
21
  expressions[propertyKey] = expression;
22
22
  }
23
- defineMetadata(ComponentConstants.ExpressionKey, expressions, target.constructor);
23
+ defineTypedMetadata(ComponentConstants.ExpressionKey, expressions, target.constructor);
24
24
  }
25
- defineMetadata(ComponentConstants.StrategyKey, strategies, target.constructor);
25
+ defineTypedMetadata(ComponentConstants.StrategyKey, strategies, target.constructor);
26
26
  };
27
27
  };
28
28
  //# sourceMappingURL=Strategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Strategy.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAyB,EAAE,UAAmC,EAAqB,EAAE;IAC5G,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAe,WAAW,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAErG,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9D,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAEjF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAe,WAAW,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAExG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;YACxC,CAAC;YAED,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACpF,CAAC;QAED,cAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Strategy.js","sourceRoot":"","sources":["../../../../../lib/ioc/component/decorators/Strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAyB,EAAE,UAAmC,EAAqB,EAAE;IAC5G,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QAC7C,MAAM,UAAU,GACd,gBAAgB,CAAa,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzF,mBAAmB,CAAiB,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAEnF,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAEjF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GACf,gBAAgB,CAAc,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAE5F,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;YACxC,CAAC;YAED,mBAAmB,CAAc,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtG,CAAC;QAED,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClG,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -2,3 +2,4 @@ export * from './Inject';
2
2
  export * from './Implements';
3
3
  export * from '../componentUtils';
4
4
  export * from './Strategy';
5
+ export * from './PostConstruct';