@nexus-ioc/core 0.4.2 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/README.md +20 -9
  2. package/dist/cjs/browser.js.map +1 -0
  3. package/dist/cjs/core/graph/analyze-module.js.map +1 -0
  4. package/dist/cjs/core/graph/analyze-provider.js.map +1 -0
  5. package/dist/cjs/core/graph/helpers/index.js.map +1 -0
  6. package/dist/{core → cjs/core}/graph/module-graph.js +28 -21
  7. package/dist/cjs/core/graph/module-graph.js.map +1 -0
  8. package/dist/cjs/core/graph/providers/analyze-class-provider.js.map +1 -0
  9. package/dist/cjs/core/graph/providers/analyze-factory-provider.js.map +1 -0
  10. package/dist/cjs/core/graph/providers/analyze-function-provider.js.map +1 -0
  11. package/dist/cjs/core/graph/providers/analyze-value-provider.js.map +1 -0
  12. package/dist/cjs/core/graph/providers/provider-factory.js.map +1 -0
  13. package/dist/cjs/core/modules/container.js +182 -0
  14. package/dist/cjs/core/modules/container.js.map +1 -0
  15. package/dist/cjs/core/modules/module-container-factory.js.map +1 -0
  16. package/dist/{core → cjs/core}/modules/module-container.js +0 -1
  17. package/dist/cjs/core/modules/module-container.js.map +1 -0
  18. package/dist/cjs/core/modules/module-token-factory.js.map +1 -0
  19. package/dist/cjs/core/modules/modules-container.js.map +1 -0
  20. package/dist/{core → cjs/core}/nexus-applications.browser.js +19 -2
  21. package/dist/cjs/core/nexus-applications.browser.js.map +1 -0
  22. package/dist/cjs/core/nexus-applications.js +204 -0
  23. package/dist/cjs/core/nexus-applications.js.map +1 -0
  24. package/dist/{core → cjs/core}/nexus-applications.server.js +19 -2
  25. package/dist/cjs/core/nexus-applications.server.js.map +1 -0
  26. package/dist/{core → cjs/core}/resolver/providers-container.js +1 -1
  27. package/dist/cjs/core/resolver/providers-container.js.map +1 -0
  28. package/dist/{core → cjs/core}/resolver/resolver.js +53 -14
  29. package/dist/cjs/core/resolver/resolver.js.map +1 -0
  30. package/dist/{decorators → cjs/decorators}/global.js +1 -1
  31. package/dist/cjs/decorators/global.js.map +1 -0
  32. package/dist/{decorators → cjs/decorators}/inject.js +39 -0
  33. package/dist/cjs/decorators/inject.js.map +1 -0
  34. package/dist/cjs/decorators/injectable.js +46 -0
  35. package/dist/cjs/decorators/injectable.js.map +1 -0
  36. package/dist/cjs/decorators/nsModule.js +57 -0
  37. package/dist/cjs/decorators/nsModule.js.map +1 -0
  38. package/dist/cjs/decorators/optional.js +60 -0
  39. package/dist/cjs/decorators/optional.js.map +1 -0
  40. package/dist/{index.js → cjs/index.js} +13 -6
  41. package/dist/cjs/index.js.map +1 -0
  42. package/dist/cjs/interfaces/abstract.interface.js.map +1 -0
  43. package/dist/cjs/interfaces/constants.js.map +1 -0
  44. package/dist/cjs/interfaces/dynamic-module.interface.js.map +1 -0
  45. package/dist/{interfaces → cjs/interfaces}/index.js +6 -6
  46. package/dist/cjs/interfaces/index.js.map +1 -0
  47. package/dist/cjs/interfaces/injectable.interface.js.map +1 -0
  48. package/dist/cjs/interfaces/injection-token.interface.js.map +1 -0
  49. package/dist/cjs/interfaces/module-metadata.interface.js.map +1 -0
  50. package/dist/cjs/interfaces/module-types.interface.js.map +1 -0
  51. package/dist/cjs/interfaces/modules/container.interface.js.map +1 -0
  52. package/dist/{interfaces → cjs/interfaces}/modules/index.js +1 -1
  53. package/dist/cjs/interfaces/modules/index.js.map +1 -0
  54. package/dist/cjs/interfaces/modules/module-container-factory.interface.js.map +1 -0
  55. package/dist/cjs/interfaces/modules/module-container.interface.js.map +1 -0
  56. package/dist/cjs/interfaces/modules/module-graph.interface.js.map +1 -0
  57. package/dist/cjs/interfaces/modules/module-token-factory.interface.js.map +1 -0
  58. package/dist/cjs/interfaces/modules/modules-container.interface.js.map +1 -0
  59. package/dist/cjs/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  60. package/dist/cjs/interfaces/nexus-application.interface.js.map +1 -0
  61. package/dist/cjs/interfaces/on-module-init.interface.js.map +1 -0
  62. package/dist/{interfaces → cjs/interfaces}/plugins/index.js +1 -1
  63. package/dist/cjs/interfaces/plugins/index.js.map +1 -0
  64. package/dist/cjs/interfaces/plugins/module-plugin.interface.js.map +1 -0
  65. package/dist/cjs/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  66. package/dist/cjs/interfaces/scope.interface.js +59 -0
  67. package/dist/cjs/interfaces/scope.interface.js.map +1 -0
  68. package/dist/cjs/interfaces/type.interface.js.map +1 -0
  69. package/dist/cjs/interfaces/utils/hash-utils.interface.js.map +1 -0
  70. package/dist/cjs/interfaces/utils/index.js.map +1 -0
  71. package/dist/{interfaces → cjs/interfaces}/validate-module-keys.js +1 -1
  72. package/dist/cjs/interfaces/validate-module-keys.js.map +1 -0
  73. package/dist/cjs/server.js.map +1 -0
  74. package/dist/cjs/utils/hash-utils.browser.js.map +1 -0
  75. package/dist/cjs/utils/hash-utils.js +25 -0
  76. package/dist/cjs/utils/hash-utils.js.map +1 -0
  77. package/dist/cjs/utils/hash-utils.server.js.map +1 -0
  78. package/dist/{utils → cjs/utils}/helpers.js +2 -1
  79. package/dist/cjs/utils/helpers.js.map +1 -0
  80. package/dist/{utils → cjs/utils}/shared.utils.js +15 -16
  81. package/dist/cjs/utils/shared.utils.js.map +1 -0
  82. package/dist/esm/browser.js +2 -0
  83. package/dist/esm/browser.js.map +1 -0
  84. package/dist/esm/core/graph/analyze-module.js +78 -0
  85. package/dist/esm/core/graph/analyze-module.js.map +1 -0
  86. package/dist/esm/core/graph/analyze-provider.js +53 -0
  87. package/dist/esm/core/graph/analyze-provider.js.map +1 -0
  88. package/dist/esm/core/graph/helpers/index.js +17 -0
  89. package/dist/esm/core/graph/helpers/index.js.map +1 -0
  90. package/dist/esm/core/graph/module-graph.js +402 -0
  91. package/dist/esm/core/graph/module-graph.js.map +1 -0
  92. package/dist/esm/core/graph/providers/analyze-class-provider.js +13 -0
  93. package/dist/esm/core/graph/providers/analyze-class-provider.js.map +1 -0
  94. package/dist/esm/core/graph/providers/analyze-factory-provider.js +13 -0
  95. package/dist/esm/core/graph/providers/analyze-factory-provider.js.map +1 -0
  96. package/dist/esm/core/graph/providers/analyze-function-provider.js +7 -0
  97. package/dist/esm/core/graph/providers/analyze-function-provider.js.map +1 -0
  98. package/dist/esm/core/graph/providers/analyze-value-provider.js +13 -0
  99. package/dist/esm/core/graph/providers/analyze-value-provider.js.map +1 -0
  100. package/dist/esm/core/graph/providers/provider-factory.js +21 -0
  101. package/dist/esm/core/graph/providers/provider-factory.js.map +1 -0
  102. package/dist/esm/core/modules/container.js +178 -0
  103. package/dist/esm/core/modules/container.js.map +1 -0
  104. package/dist/esm/core/modules/module-container-factory.js +21 -0
  105. package/dist/esm/core/modules/module-container-factory.js.map +1 -0
  106. package/dist/esm/core/modules/module-container.js +58 -0
  107. package/dist/esm/core/modules/module-container.js.map +1 -0
  108. package/dist/esm/core/modules/module-token-factory.js +43 -0
  109. package/dist/esm/core/modules/module-token-factory.js.map +1 -0
  110. package/dist/esm/core/modules/modules-container.js +39 -0
  111. package/dist/esm/core/modules/modules-container.js.map +1 -0
  112. package/dist/esm/core/nexus-applications.browser.js +49 -0
  113. package/dist/esm/core/nexus-applications.browser.js.map +1 -0
  114. package/dist/esm/core/nexus-applications.js +200 -0
  115. package/dist/esm/core/nexus-applications.js.map +1 -0
  116. package/dist/esm/core/nexus-applications.server.js +49 -0
  117. package/dist/esm/core/nexus-applications.server.js.map +1 -0
  118. package/dist/esm/core/resolver/providers-container.js +4 -0
  119. package/dist/esm/core/resolver/providers-container.js.map +1 -0
  120. package/dist/esm/core/resolver/resolver.js +161 -0
  121. package/dist/esm/core/resolver/resolver.js.map +1 -0
  122. package/dist/esm/decorators/global.js +9 -0
  123. package/dist/esm/decorators/global.js.map +1 -0
  124. package/dist/esm/decorators/inject.js +63 -0
  125. package/dist/esm/decorators/inject.js.map +1 -0
  126. package/dist/esm/decorators/injectable.js +43 -0
  127. package/dist/esm/decorators/injectable.js.map +1 -0
  128. package/dist/esm/decorators/nsModule.js +54 -0
  129. package/dist/esm/decorators/nsModule.js.map +1 -0
  130. package/dist/esm/decorators/optional.js +57 -0
  131. package/dist/esm/decorators/optional.js.map +1 -0
  132. package/dist/esm/index.js +12 -0
  133. package/dist/esm/index.js.map +1 -0
  134. package/dist/esm/interfaces/abstract.interface.js +2 -0
  135. package/dist/esm/interfaces/abstract.interface.js.map +1 -0
  136. package/dist/esm/interfaces/constants.js +13 -0
  137. package/dist/esm/interfaces/constants.js.map +1 -0
  138. package/dist/esm/interfaces/dynamic-module.interface.js +2 -0
  139. package/dist/esm/interfaces/dynamic-module.interface.js.map +1 -0
  140. package/dist/esm/interfaces/index.js +16 -0
  141. package/dist/esm/interfaces/index.js.map +1 -0
  142. package/dist/esm/interfaces/injectable.interface.js +2 -0
  143. package/dist/esm/interfaces/injectable.interface.js.map +1 -0
  144. package/dist/esm/interfaces/injection-token.interface.js +2 -0
  145. package/dist/esm/interfaces/injection-token.interface.js.map +1 -0
  146. package/dist/esm/interfaces/module-metadata.interface.js +2 -0
  147. package/dist/esm/interfaces/module-metadata.interface.js.map +1 -0
  148. package/dist/esm/interfaces/module-types.interface.js +2 -0
  149. package/dist/esm/interfaces/module-types.interface.js.map +1 -0
  150. package/dist/esm/interfaces/modules/container.interface.js +2 -0
  151. package/dist/esm/interfaces/modules/container.interface.js.map +1 -0
  152. package/dist/esm/interfaces/modules/index.js +8 -0
  153. package/dist/esm/interfaces/modules/index.js.map +1 -0
  154. package/dist/esm/interfaces/modules/module-container-factory.interface.js +2 -0
  155. package/dist/esm/interfaces/modules/module-container-factory.interface.js.map +1 -0
  156. package/dist/esm/interfaces/modules/module-container.interface.js +2 -0
  157. package/dist/esm/interfaces/modules/module-container.interface.js.map +1 -0
  158. package/dist/esm/interfaces/modules/module-graph.interface.js +13 -0
  159. package/dist/esm/interfaces/modules/module-graph.interface.js.map +1 -0
  160. package/dist/esm/interfaces/modules/module-token-factory.interface.js +2 -0
  161. package/dist/esm/interfaces/modules/module-token-factory.interface.js.map +1 -0
  162. package/dist/esm/interfaces/modules/modules-container.interface.js +2 -0
  163. package/dist/esm/interfaces/modules/modules-container.interface.js.map +1 -0
  164. package/dist/esm/interfaces/modules/provider-token-factory.interface.js +2 -0
  165. package/dist/esm/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  166. package/dist/esm/interfaces/nexus-application.interface.js +2 -0
  167. package/dist/esm/interfaces/nexus-application.interface.js.map +1 -0
  168. package/dist/esm/interfaces/on-module-init.interface.js +2 -0
  169. package/dist/esm/interfaces/on-module-init.interface.js.map +1 -0
  170. package/dist/esm/interfaces/plugins/index.js +3 -0
  171. package/dist/esm/interfaces/plugins/index.js.map +1 -0
  172. package/dist/esm/interfaces/plugins/module-plugin.interface.js +2 -0
  173. package/dist/esm/interfaces/plugins/module-plugin.interface.js.map +1 -0
  174. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js +2 -0
  175. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  176. package/dist/esm/interfaces/scope.interface.js +56 -0
  177. package/dist/esm/interfaces/scope.interface.js.map +1 -0
  178. package/dist/esm/interfaces/type.interface.js +2 -0
  179. package/dist/esm/interfaces/type.interface.js.map +1 -0
  180. package/dist/esm/interfaces/utils/hash-utils.interface.js +2 -0
  181. package/dist/esm/interfaces/utils/hash-utils.interface.js.map +1 -0
  182. package/dist/esm/interfaces/utils/index.js +2 -0
  183. package/dist/esm/interfaces/utils/index.js.map +1 -0
  184. package/dist/esm/interfaces/validate-module-keys.js +21 -0
  185. package/dist/esm/interfaces/validate-module-keys.js.map +1 -0
  186. package/dist/esm/package.json +1 -0
  187. package/dist/esm/server.js +2 -0
  188. package/dist/esm/server.js.map +1 -0
  189. package/dist/esm/utils/hash-utils.browser.js +20 -0
  190. package/dist/esm/utils/hash-utils.browser.js.map +1 -0
  191. package/dist/esm/utils/hash-utils.js +21 -0
  192. package/dist/esm/utils/hash-utils.js.map +1 -0
  193. package/dist/esm/utils/hash-utils.server.js +17 -0
  194. package/dist/esm/utils/hash-utils.server.js.map +1 -0
  195. package/dist/esm/utils/helpers.js +63 -0
  196. package/dist/esm/utils/helpers.js.map +1 -0
  197. package/dist/esm/utils/shared.utils.js +49 -0
  198. package/dist/esm/utils/shared.utils.js.map +1 -0
  199. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  200. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  201. package/dist/{core → types/core}/graph/analyze-module.d.ts +4 -4
  202. package/dist/{core → types/core}/graph/analyze-provider.d.ts +4 -4
  203. package/dist/{core → types/core}/graph/module-graph.d.ts +1 -1
  204. package/dist/{core → types/core}/graph/providers/analyze-class-provider.d.ts +2 -2
  205. package/dist/{core → types/core}/graph/providers/analyze-factory-provider.d.ts +2 -2
  206. package/dist/{core → types/core}/graph/providers/analyze-value-provider.d.ts +1 -1
  207. package/dist/{core → types/core}/graph/providers/provider-factory.d.ts +1 -1
  208. package/dist/types/core/modules/container.d.ts +154 -0
  209. package/dist/{core → types/core}/modules/module-container.d.ts +1 -1
  210. package/dist/{core → types/core}/nexus-applications.browser.d.ts +9 -1
  211. package/dist/types/core/nexus-applications.d.ts +160 -0
  212. package/dist/{core → types/core}/nexus-applications.server.d.ts +9 -1
  213. package/dist/types/decorators/inject.d.ts +42 -0
  214. package/dist/types/decorators/injectable.d.ts +37 -0
  215. package/dist/types/decorators/nsModule.d.ts +44 -0
  216. package/dist/types/decorators/optional.d.ts +42 -0
  217. package/dist/{index.d.ts → types/index.d.ts} +6 -3
  218. package/dist/types/interfaces/module-types.interface.d.ts +158 -0
  219. package/dist/types/interfaces/modules/container.interface.d.ts +8 -0
  220. package/dist/types/interfaces/modules/module-container.interface.d.ts +1 -0
  221. package/dist/{interfaces → types/interfaces}/modules/module-graph.interface.d.ts +3 -23
  222. package/dist/{interfaces → types/interfaces}/nexus-application.interface.d.ts +2 -0
  223. package/dist/types/interfaces/on-module-init.interface.d.ts +51 -0
  224. package/dist/types/interfaces/scope.interface.d.ts +54 -0
  225. package/dist/types/interfaces/utils/hash-utils.interface.d.ts +1 -0
  226. package/dist/{interfaces → types/interfaces}/validate-module-keys.d.ts +1 -1
  227. package/dist/types/utils/hash-utils.d.ts +7 -0
  228. package/package.json +83 -60
  229. package/dist/browser.js.map +0 -1
  230. package/dist/core/graph/analyze-module.js.map +0 -1
  231. package/dist/core/graph/analyze-provider.js.map +0 -1
  232. package/dist/core/graph/helpers/index.js.map +0 -1
  233. package/dist/core/graph/module-graph.js.map +0 -1
  234. package/dist/core/graph/providers/analyze-class-provider.js.map +0 -1
  235. package/dist/core/graph/providers/analyze-factory-provider.js.map +0 -1
  236. package/dist/core/graph/providers/analyze-function-provider.js.map +0 -1
  237. package/dist/core/graph/providers/analyze-value-provider.js.map +0 -1
  238. package/dist/core/graph/providers/provider-factory.js.map +0 -1
  239. package/dist/core/modules/container.d.ts +0 -15
  240. package/dist/core/modules/container.js +0 -40
  241. package/dist/core/modules/container.js.map +0 -1
  242. package/dist/core/modules/module-container-factory.js.map +0 -1
  243. package/dist/core/modules/module-container.js.map +0 -1
  244. package/dist/core/modules/module-token-factory.js.map +0 -1
  245. package/dist/core/modules/modules-container.js.map +0 -1
  246. package/dist/core/nexus-applications.browser.js.map +0 -1
  247. package/dist/core/nexus-applications.server.js.map +0 -1
  248. package/dist/core/resolver/providers-container.js.map +0 -1
  249. package/dist/core/resolver/resolver.js.map +0 -1
  250. package/dist/decorators/global.js.map +0 -1
  251. package/dist/decorators/inject.d.ts +0 -3
  252. package/dist/decorators/inject.js.map +0 -1
  253. package/dist/decorators/injectable.d.ts +0 -3
  254. package/dist/decorators/injectable.js +0 -12
  255. package/dist/decorators/injectable.js.map +0 -1
  256. package/dist/decorators/nsModule.d.ts +0 -3
  257. package/dist/decorators/nsModule.js +0 -16
  258. package/dist/decorators/nsModule.js.map +0 -1
  259. package/dist/decorators/optional.d.ts +0 -2
  260. package/dist/decorators/optional.js +0 -20
  261. package/dist/decorators/optional.js.map +0 -1
  262. package/dist/errors/container-not-compiled.error.d.ts +0 -3
  263. package/dist/errors/container-not-compiled.error.js +0 -12
  264. package/dist/errors/container-not-compiled.error.js.map +0 -1
  265. package/dist/index.js.map +0 -1
  266. package/dist/interfaces/abstract.interface.js.map +0 -1
  267. package/dist/interfaces/constants.js.map +0 -1
  268. package/dist/interfaces/dynamic-module.interface.js.map +0 -1
  269. package/dist/interfaces/index.js.map +0 -1
  270. package/dist/interfaces/injectable.interface.js.map +0 -1
  271. package/dist/interfaces/injection-token.interface.js.map +0 -1
  272. package/dist/interfaces/module-metadata.interface.js.map +0 -1
  273. package/dist/interfaces/module-types.interface.d.ts +0 -20
  274. package/dist/interfaces/module-types.interface.js.map +0 -1
  275. package/dist/interfaces/modules/container.interface.d.ts +0 -16
  276. package/dist/interfaces/modules/container.interface.js.map +0 -1
  277. package/dist/interfaces/modules/index.js.map +0 -1
  278. package/dist/interfaces/modules/module-container-factory.interface.js.map +0 -1
  279. package/dist/interfaces/modules/module-container.interface.d.ts +0 -13
  280. package/dist/interfaces/modules/module-container.interface.js.map +0 -1
  281. package/dist/interfaces/modules/module-graph.interface.js.map +0 -1
  282. package/dist/interfaces/modules/module-token-factory.interface.js.map +0 -1
  283. package/dist/interfaces/modules/modules-container.interface.js.map +0 -1
  284. package/dist/interfaces/modules/provider-token-factory.interface.js.map +0 -1
  285. package/dist/interfaces/nexus-application.interface.js.map +0 -1
  286. package/dist/interfaces/on-module-init.interface.d.ts +0 -3
  287. package/dist/interfaces/on-module-init.interface.js.map +0 -1
  288. package/dist/interfaces/plugins/index.js.map +0 -1
  289. package/dist/interfaces/plugins/module-plugin.interface.js.map +0 -1
  290. package/dist/interfaces/plugins/scanner-plugin.interface.js.map +0 -1
  291. package/dist/interfaces/scope.interface.d.ts +0 -4
  292. package/dist/interfaces/scope.interface.js +0 -9
  293. package/dist/interfaces/scope.interface.js.map +0 -1
  294. package/dist/interfaces/type.interface.js.map +0 -1
  295. package/dist/interfaces/utils/hash-utils.interface.d.ts +0 -5
  296. package/dist/interfaces/utils/hash-utils.interface.js.map +0 -1
  297. package/dist/interfaces/utils/index.js.map +0 -1
  298. package/dist/interfaces/validate-module-keys.js.map +0 -1
  299. package/dist/server.js.map +0 -1
  300. package/dist/utils/hash-utils.browser.js.map +0 -1
  301. package/dist/utils/hash-utils.server.js.map +0 -1
  302. package/dist/utils/helpers.js.map +0 -1
  303. package/dist/utils/random-string-generator.util.d.ts +0 -1
  304. package/dist/utils/random-string-generator.util.js +0 -7
  305. package/dist/utils/random-string-generator.util.js.map +0 -1
  306. package/dist/utils/shared.utils.js.map +0 -1
  307. package/dist/{browser.js → cjs/browser.js} +0 -0
  308. package/dist/{core → cjs/core}/graph/analyze-module.js +0 -0
  309. package/dist/{core → cjs/core}/graph/analyze-provider.js +0 -0
  310. package/dist/{core → cjs/core}/graph/helpers/index.js +0 -0
  311. package/dist/{core → cjs/core}/graph/providers/analyze-class-provider.js +0 -0
  312. package/dist/{core → cjs/core}/graph/providers/analyze-factory-provider.js +0 -0
  313. package/dist/{core → cjs/core}/graph/providers/analyze-function-provider.js +0 -0
  314. package/dist/{core → cjs/core}/graph/providers/analyze-value-provider.js +0 -0
  315. package/dist/{core → cjs/core}/graph/providers/provider-factory.js +0 -0
  316. package/dist/{core → cjs/core}/modules/module-container-factory.js +0 -0
  317. package/dist/{core → cjs/core}/modules/module-token-factory.js +0 -0
  318. package/dist/{core → cjs/core}/modules/modules-container.js +0 -0
  319. package/dist/{interfaces → cjs/interfaces}/abstract.interface.js +0 -0
  320. package/dist/{interfaces → cjs/interfaces}/constants.js +0 -0
  321. package/dist/{interfaces → cjs/interfaces}/dynamic-module.interface.js +0 -0
  322. package/dist/{interfaces → cjs/interfaces}/injectable.interface.js +0 -0
  323. package/dist/{interfaces → cjs/interfaces}/injection-token.interface.js +0 -0
  324. package/dist/{interfaces → cjs/interfaces}/module-metadata.interface.js +0 -0
  325. package/dist/{interfaces → cjs/interfaces}/module-types.interface.js +0 -0
  326. package/dist/{interfaces → cjs/interfaces}/modules/container.interface.js +0 -0
  327. package/dist/{interfaces → cjs/interfaces}/modules/module-container-factory.interface.js +0 -0
  328. package/dist/{interfaces → cjs/interfaces}/modules/module-container.interface.js +0 -0
  329. package/dist/{interfaces → cjs/interfaces}/modules/module-graph.interface.js +0 -0
  330. package/dist/{interfaces → cjs/interfaces}/modules/module-token-factory.interface.js +0 -0
  331. package/dist/{interfaces → cjs/interfaces}/modules/modules-container.interface.js +0 -0
  332. package/dist/{interfaces → cjs/interfaces}/modules/provider-token-factory.interface.js +0 -0
  333. package/dist/{interfaces → cjs/interfaces}/nexus-application.interface.js +0 -0
  334. package/dist/{interfaces → cjs/interfaces}/on-module-init.interface.js +0 -0
  335. package/dist/{interfaces → cjs/interfaces}/plugins/module-plugin.interface.js +0 -0
  336. package/dist/{interfaces → cjs/interfaces}/plugins/scanner-plugin.interface.js +0 -0
  337. package/dist/{interfaces → cjs/interfaces}/type.interface.js +0 -0
  338. package/dist/{interfaces → cjs/interfaces}/utils/hash-utils.interface.js +0 -0
  339. package/dist/{interfaces → cjs/interfaces}/utils/index.js +0 -0
  340. package/dist/{server.js → cjs/server.js} +0 -0
  341. package/dist/{utils → cjs/utils}/hash-utils.browser.js +0 -0
  342. package/dist/{utils → cjs/utils}/hash-utils.server.js +0 -0
  343. package/dist/{browser.d.ts → types/browser.d.ts} +0 -0
  344. package/dist/{core → types/core}/graph/helpers/index.d.ts +0 -0
  345. package/dist/{core → types/core}/graph/providers/analyze-function-provider.d.ts +0 -0
  346. package/dist/{core → types/core}/modules/module-container-factory.d.ts +0 -0
  347. package/dist/{core → types/core}/modules/module-token-factory.d.ts +0 -0
  348. package/dist/{core → types/core}/modules/modules-container.d.ts +0 -0
  349. package/dist/{core → types/core}/resolver/providers-container.d.ts +0 -0
  350. package/dist/{core → types/core}/resolver/resolver.d.ts +0 -0
  351. package/dist/{decorators → types/decorators}/global.d.ts +0 -0
  352. package/dist/{interfaces → types/interfaces}/abstract.interface.d.ts +0 -0
  353. package/dist/{interfaces → types/interfaces}/constants.d.ts +0 -0
  354. package/dist/{interfaces → types/interfaces}/dynamic-module.interface.d.ts +0 -0
  355. package/dist/{interfaces → types/interfaces}/index.d.ts +6 -6
  356. package/dist/{interfaces → types/interfaces}/injectable.interface.d.ts +0 -0
  357. package/dist/{interfaces → types/interfaces}/injection-token.interface.d.ts +0 -0
  358. package/dist/{interfaces → types/interfaces}/module-metadata.interface.d.ts +0 -0
  359. package/dist/{interfaces → types/interfaces}/modules/index.d.ts +1 -1
  360. package/dist/{interfaces → types/interfaces}/modules/module-container-factory.interface.d.ts +0 -0
  361. package/dist/{interfaces → types/interfaces}/modules/module-token-factory.interface.d.ts +0 -0
  362. package/dist/{interfaces → types/interfaces}/modules/modules-container.interface.d.ts +0 -0
  363. package/dist/{interfaces → types/interfaces}/modules/provider-token-factory.interface.d.ts +0 -0
  364. package/dist/{interfaces → types/interfaces}/plugins/index.d.ts +1 -1
  365. /package/dist/{interfaces → types/interfaces}/plugins/module-plugin.interface.d.ts +0 -0
  366. /package/dist/{interfaces → types/interfaces}/plugins/scanner-plugin.interface.d.ts +0 -0
  367. /package/dist/{interfaces → types/interfaces}/type.interface.d.ts +0 -0
  368. /package/dist/{interfaces → types/interfaces}/utils/index.d.ts +0 -0
  369. /package/dist/{server.d.ts → types/server.d.ts} +0 -0
  370. /package/dist/{utils → types/utils}/hash-utils.browser.d.ts +0 -0
  371. /package/dist/{utils → types/utils}/hash-utils.server.d.ts +0 -0
  372. /package/dist/{utils → types/utils}/helpers.d.ts +0 -0
  373. /package/dist/{utils → types/utils}/shared.utils.d.ts +0 -0
@@ -0,0 +1,49 @@
1
+ import { HashUtilsServer } from "../utils/hash-utils.server.js";
2
+ import { Container } from "./modules/container.js";
3
+ /**
4
+ * @deprecated
5
+ * It will be removed in version 1.0.0.
6
+ * these classes work the same way. For the new behavior, use @NexusApplications
7
+ */
8
+ export class NexusApplicationsServer {
9
+ constructor(rootModule) {
10
+ this.rootModule = rootModule;
11
+ this.hashUtil = new HashUtilsServer();
12
+ this.container = new Container(this.hashUtil);
13
+ this.scannerPlugins = [];
14
+ this._parentContainer = null;
15
+ }
16
+ static create(rootModule) {
17
+ return new NexusApplicationsServer(rootModule);
18
+ }
19
+ async bootstrap() {
20
+ await this.container.run(this.rootModule);
21
+ for (const scannerPlugin of this.scannerPlugins) {
22
+ await scannerPlugin.scan(this.container.graph);
23
+ }
24
+ return this;
25
+ }
26
+ addScannerPlugin(scanner) {
27
+ const plugins = Array.isArray(scanner) ? scanner : [scanner];
28
+ this.scannerPlugins.push(...plugins);
29
+ return this;
30
+ }
31
+ async get(token) {
32
+ const dependency = await this.container.get(token);
33
+ if (!dependency) {
34
+ return this._parentContainer?.get(token);
35
+ }
36
+ return dependency;
37
+ }
38
+ get errors() {
39
+ return this.container.errors;
40
+ }
41
+ async() {
42
+ return this;
43
+ }
44
+ setParent(parentContainer) {
45
+ this._parentContainer = parentContainer;
46
+ return this;
47
+ }
48
+ }
49
+ //# sourceMappingURL=nexus-applications.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-applications.server.js","sourceRoot":"","sources":["../../../src/core/nexus-applications.server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAMnC,YAAqC,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QALtC,aAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,cAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,mBAAc,GAA6B,EAAE,CAAC;QACvD,qBAAgB,GAAqC,IAAI,CAAC;IAER,CAAC;IAE3D,MAAM,CAAC,MAAM,CAAC,UAAkB;QAC/B,OAAO,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,gBAAgB,CACtB,OAA0D;QAE1D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,KAAqB;QACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAI,KAAK,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAI,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,SAAS,CAAC,eAA0C;QAC1D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ // biome-ignore lint/suspicious/noExplicitAny: providers container
2
+ export class ProvidersContainer extends Map {
3
+ }
4
+ //# sourceMappingURL=providers-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers-container.js","sourceRoot":"","sources":["../../../../src/core/resolver/providers-container.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,OAAO,kBAAmB,SAAQ,GAAwB;CAAG"}
@@ -0,0 +1,161 @@
1
+ import { EdgeTypeEnum, Scope, } from "../../interfaces/index.js";
2
+ import { isClassProvider, isFactoryProvider, isValueProvider, } from "../../utils/helpers.js";
3
+ import { ProvidersContainer } from "./providers-container.js";
4
+ function isCircularDependencyFn(fn) {
5
+ // @ts-expect-error
6
+ return !!(typeof fn === "function" && fn.dependencyName);
7
+ }
8
+ export class Resolver {
9
+ constructor(graph) {
10
+ this.graph = graph;
11
+ this.providersContainer = new ProvidersContainer();
12
+ }
13
+ async resolveProvider(token, resolveCache = new ProvidersContainer(), isCircularDependency = false) {
14
+ const node = this.graph.getNode(token);
15
+ if (!node) {
16
+ return undefined;
17
+ }
18
+ // Get the scope of the provider
19
+ const scope = node.scope;
20
+ // For Transient scope, always create a new instance (no caching at all)
21
+ if (scope === Scope.Transient) {
22
+ const [instance] = await this.createInstance(node, resolveCache, isCircularDependency);
23
+ return instance;
24
+ }
25
+ // For Singleton scope, check global cache first
26
+ if (scope === Scope.Singleton && this.providersContainer.has(token)) {
27
+ return this.providersContainer.get(token);
28
+ }
29
+ // For Request and Singleton scopes, check resolve cache (within current resolution tree)
30
+ if (resolveCache.has(token)) {
31
+ return resolveCache.get(token);
32
+ }
33
+ const [instance, saveInCache] = await this.createInstance(node, resolveCache, isCircularDependency);
34
+ // Add to resolve cache for current resolution context (for Request and Singleton)
35
+ // This ensures same instance is used within a single dependency resolution tree
36
+ if (scope === Scope.Singleton || scope === Scope.Request) {
37
+ resolveCache.set(token, instance);
38
+ }
39
+ // Only save to global cache for Singleton scope
40
+ if (saveInCache) {
41
+ this.providersContainer.set(token, instance);
42
+ }
43
+ return instance;
44
+ }
45
+ async createInstance(node, resolveCache, isCircularDependency = false) {
46
+ const provider = node.metatype;
47
+ const dependencies = this.graph
48
+ .getEdge(node.id)
49
+ .filter((edge) => edge.type === EdgeTypeEnum.DEPENDENCY &&
50
+ edge.metadata.inject === "constructor" &&
51
+ edge.metadata.unreached === false)
52
+ .map((edge) => {
53
+ if (edge.metadata.isCircular) {
54
+ const circularResolver = () => new Proxy({}, {
55
+ get: (_, prop) => {
56
+ const instance = resolveCache.get(edge.target);
57
+ return instance?.[prop];
58
+ },
59
+ });
60
+ circularResolver.dependencyName = edge.target;
61
+ return circularResolver;
62
+ }
63
+ return edge.target;
64
+ });
65
+ const depsChunks = dependencies.reduce((prev, depToken) => {
66
+ if (isCircularDependencyFn(depToken)) {
67
+ prev[0].push(depToken);
68
+ prev[1].push(null);
69
+ return prev;
70
+ }
71
+ prev[0].push(null);
72
+ prev[1].push(depToken);
73
+ return prev;
74
+ }, [[], []]);
75
+ // biome-ignore lint/suspicious/noExplicitAny: dependency resolution
76
+ let resolvedDependencies = [];
77
+ for (const depToken of dependencies) {
78
+ if (isCircularDependencyFn(depToken)) {
79
+ if (isCircularDependency) {
80
+ resolvedDependencies.push(depToken);
81
+ continue;
82
+ }
83
+ const instance = await this.resolveProvider(
84
+ // @ts-expect-error
85
+ depToken.dependencyName, resolveCache, true);
86
+ resolvedDependencies.push(instance);
87
+ continue;
88
+ }
89
+ const instance = await this.resolveProvider(depToken, resolveCache);
90
+ resolvedDependencies.push(instance);
91
+ }
92
+ resolvedDependencies = resolvedDependencies.map((dependency, index) => {
93
+ if (depsChunks[0]?.[index]) {
94
+ return depsChunks[0]?.[index];
95
+ }
96
+ return dependency;
97
+ });
98
+ // biome-ignore lint/suspicious/noExplicitAny: instance creation
99
+ let instance;
100
+ let saveInCache = true;
101
+ const deps = resolvedDependencies.map((depToken) => isCircularDependencyFn(depToken) ? depToken() : depToken);
102
+ if (isClassProvider(provider)) {
103
+ instance = new provider.useClass(...deps);
104
+ await this.injectPropertyDependencies(instance, node, resolveCache);
105
+ // Determine caching strategy based on scope
106
+ const scope = node.scope;
107
+ saveInCache = scope === Scope.Singleton;
108
+ }
109
+ else if (isValueProvider(provider)) {
110
+ instance = provider.useValue;
111
+ // Value providers are always singleton
112
+ saveInCache = true;
113
+ }
114
+ else if (isFactoryProvider(provider)) {
115
+ instance = await provider.useFactory(...deps);
116
+ // Check scope for factory providers
117
+ const scope = node.scope;
118
+ saveInCache = scope === Scope.Singleton;
119
+ }
120
+ else {
121
+ instance = new provider(...deps);
122
+ await this.injectPropertyDependencies(instance, node, resolveCache);
123
+ // Check scope for function providers
124
+ const scope = node.scope;
125
+ saveInCache = scope === Scope.Singleton;
126
+ }
127
+ // Call lifecycle hook with error handling
128
+ if (instance?.onModuleInit) {
129
+ try {
130
+ await instance.onModuleInit();
131
+ }
132
+ catch (error) {
133
+ // Re-throw with additional context about which provider failed
134
+ const providerName = typeof provider === "function"
135
+ ? provider.name
136
+ : provider.provide?.toString() ||
137
+ "Unknown";
138
+ const errorMessage = `Failed to initialize provider "${providerName}": ${error instanceof Error ? error.message : String(error)}`;
139
+ const wrappedError = new Error(errorMessage);
140
+ // Preserve original error stack if available
141
+ if (error instanceof Error && error.stack) {
142
+ wrappedError.stack = `${wrappedError.stack}\nCaused by: ${error.stack}`;
143
+ }
144
+ throw wrappedError;
145
+ }
146
+ }
147
+ return [instance, saveInCache];
148
+ }
149
+ async injectPropertyDependencies(instance, node, resolveCache) {
150
+ const dependencies = this.graph
151
+ .getEdge(node.id)
152
+ .filter((edge) => edge.type === EdgeTypeEnum.DEPENDENCY &&
153
+ edge.metadata.inject === "property" &&
154
+ edge.metadata.unreached === false &&
155
+ edge.metadata.isCircular === false);
156
+ for (const edge of dependencies) {
157
+ instance[edge.metadata.key] = await this.resolveProvider(edge.target, resolveCache);
158
+ }
159
+ }
160
+ }
161
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../src/core/resolver/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import "reflect-metadata";
2
+ import { MODULE_GLOBAL_WATERMARK } from "../interfaces/index.js";
3
+ export function Global() {
4
+ // biome-ignore lint/complexity/noBannedTypes: Function type needed for decorator
5
+ return (target) => {
6
+ Reflect.defineMetadata(MODULE_GLOBAL_WATERMARK, true, target);
7
+ };
8
+ }
9
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/decorators/global.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,UAAU,MAAM;IACrB,iFAAiF;IACjF,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC3B,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,63 @@
1
+ import "reflect-metadata";
2
+ import { INJECT_WATERMARK, PROPERTY_DEPS_METADATA, SELF_DECLARED_DEPS_METADATA, } from "../interfaces/index.js";
3
+ /**
4
+ * Explicitly specifies the injection token for a constructor parameter or property.
5
+ *
6
+ * This decorator is used when:
7
+ * - You need to inject a provider by a string or symbol token
8
+ * - TypeScript's reflection cannot determine the type (e.g., interfaces, circular dependencies)
9
+ * - You want to inject a different implementation than the declared type
10
+ *
11
+ * @param token - The injection token (class, string, or symbol)
12
+ * @returns A decorator that can be applied to constructor parameters or properties
13
+ * @throws {Error} If the token is undefined (often due to circular dependencies)
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Constructor parameter injection
18
+ * @Injectable()
19
+ * class UserService {
20
+ * constructor(
21
+ * @Inject('DATABASE_CONFIG') private config: DatabaseConfig,
22
+ * @Inject(Logger) private logger: Logger
23
+ * ) {}
24
+ * }
25
+ *
26
+ * // Property injection
27
+ * @Injectable()
28
+ * class ProductService {
29
+ * @Inject('CACHE_MANAGER')
30
+ * private cache: CacheManager;
31
+ * }
32
+ *
33
+ * // Resolving circular dependencies
34
+ * @Injectable()
35
+ * class ServiceA {
36
+ * constructor(
37
+ * @Inject(forwardRef(() => ServiceB)) private serviceB: ServiceB
38
+ * ) {}
39
+ * }
40
+ * ```
41
+ */
42
+ export function Inject(token) {
43
+ return (target, propertyKey, parameterIndex) => {
44
+ Reflect.defineMetadata(INJECT_WATERMARK, true, target);
45
+ const type = token ||
46
+ Reflect.getMetadata("design:type", target, propertyKey);
47
+ if (!type) {
48
+ throw new Error(`
49
+ Token is undefined at index: ${parameterIndex}. This often occurs due to circular dependencies.
50
+ Ensure there are no circular dependencies in your files or barrel files.`);
51
+ }
52
+ if (parameterIndex === undefined) {
53
+ let properties = Reflect.getMetadata(PROPERTY_DEPS_METADATA, target) || [];
54
+ properties = [...properties, { key: propertyKey, type }];
55
+ Reflect.defineMetadata(PROPERTY_DEPS_METADATA, properties, target.constructor);
56
+ return;
57
+ }
58
+ let dependencies = Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, target) || [];
59
+ dependencies = [...dependencies, { index: parameterIndex, param: type }];
60
+ Reflect.defineMetadata(SELF_DECLARED_DEPS_METADATA, dependencies, target);
61
+ };
62
+ }
63
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EACN,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAE3B,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,MAAM,CACrB,KAA6B;IAE7B,OAAO,CACN,MAAc,EACd,WAA6B,EAC7B,cAAuB,EACtB,EAAE;QACH,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,IAAI,GACT,KAAK;YACL,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAqB,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC;mCACgB,cAAc;yEACwB,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU,GACb,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAE3D,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,cAAc,CACrB,sBAAsB,EACtB,UAAU,EACV,MAAM,CAAC,WAAW,CAClB,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,YAAY,GACf,OAAO,CAAC,WAAW,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEhE,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,cAAc,CAAC,2BAA2B,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ import "reflect-metadata";
2
+ import { INJECTABLE_OPTIONS, INJECTABLE_WATERMARK, Scope } from "../interfaces/index.js";
3
+ /**
4
+ * Marks a class as injectable, making it available for dependency injection.
5
+ *
6
+ * This decorator must be applied to any class that you want to use as a provider
7
+ * in the IoC container. It configures the scope and other options for the provider.
8
+ *
9
+ * @param options - Configuration options for the injectable
10
+ * @param options.scope - The lifecycle scope of the provider:
11
+ * - `Scope.Singleton` (default): One instance shared across the entire application
12
+ * - `Scope.Request`: New instance for each container.get() call
13
+ * - `Scope.Transient`: New instance every time, even within the same dependency tree
14
+ * @returns A class decorator
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Singleton scope (default)
19
+ * @Injectable()
20
+ * class UserService {
21
+ * constructor(private db: Database) {}
22
+ * }
23
+ *
24
+ * // Request scope
25
+ * @Injectable({ scope: Scope.Request })
26
+ * class RequestContext {
27
+ * requestId = Math.random();
28
+ * }
29
+ *
30
+ * // Transient scope
31
+ * @Injectable({ scope: Scope.Transient })
32
+ * class Logger {
33
+ * timestamp = Date.now();
34
+ * }
35
+ * ```
36
+ */
37
+ export function Injectable(options = { scope: Scope.Singleton }) {
38
+ return (target) => {
39
+ Reflect.defineMetadata(INJECTABLE_OPTIONS, options, target);
40
+ Reflect.defineMetadata(INJECTABLE_WATERMARK, true, target);
41
+ };
42
+ }
43
+ //# sourceMappingURL=injectable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../src/decorators/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,UAAU,CACzB,UAA6B,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE;IAEvD,OAAO,CAAC,MAAM,EAAE,EAAE;QACjB,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,54 @@
1
+ import "reflect-metadata";
2
+ import { MODULE_METADATA, MODULE_WATERMARK, validateModuleKeys, } from "../interfaces/index.js";
3
+ /**
4
+ * Defines a module in the application.
5
+ *
6
+ * A module is a class annotated with @NsModule() decorator that organizes
7
+ * the application structure. Modules can:
8
+ * - Declare providers that will be instantiated by the container
9
+ * - Import other modules to use their exported providers
10
+ * - Export providers to make them available to other modules
11
+ *
12
+ * @param metadata - Module configuration
13
+ * @param metadata.imports - Modules whose exported providers should be available in this module
14
+ * @param metadata.providers - Providers that belong to this module
15
+ * @param metadata.exports - Providers or modules to export (make available to importing modules)
16
+ * @returns A class decorator
17
+ * @throws {Error} If invalid metadata keys are provided
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Basic module
22
+ * @NsModule({
23
+ * providers: [UserService, UserRepository],
24
+ * exports: [UserService]
25
+ * })
26
+ * class UserModule {}
27
+ *
28
+ * // Module with imports
29
+ * @NsModule({
30
+ * imports: [DatabaseModule, LoggerModule],
31
+ * providers: [ProductService],
32
+ * exports: [ProductService]
33
+ * })
34
+ * class ProductModule {}
35
+ *
36
+ * // Root module
37
+ * @NsModule({
38
+ * imports: [UserModule, ProductModule],
39
+ * providers: [AppService]
40
+ * })
41
+ * class AppModule {}
42
+ * ```
43
+ */
44
+ export function NsModule(metadata) {
45
+ const propsKeys = Object.keys(metadata);
46
+ validateModuleKeys(propsKeys);
47
+ return (target) => {
48
+ Reflect.defineMetadata(MODULE_WATERMARK, true, target);
49
+ Reflect.defineMetadata(MODULE_METADATA.IMPORTS, metadata.imports || [], target);
50
+ Reflect.defineMetadata(MODULE_METADATA.EXPORTS, metadata.exports || [], target);
51
+ Reflect.defineMetadata(MODULE_METADATA.PROVIDERS, metadata.providers || [], target);
52
+ };
53
+ }
54
+ //# sourceMappingURL=nsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsModule.js","sourceRoot":"","sources":["../../../src/decorators/nsModule.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAwB;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE9B,OAAO,CAAC,MAAM,EAAE,EAAE;QACjB,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,CACrB,eAAe,CAAC,OAAO,EACvB,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,MAAM,CACN,CAAC;QACF,OAAO,CAAC,cAAc,CACrB,eAAe,CAAC,OAAO,EACvB,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,MAAM,CACN,CAAC;QACF,OAAO,CAAC,cAAc,CACrB,eAAe,CAAC,SAAS,EACzB,QAAQ,CAAC,SAAS,IAAI,EAAE,EACxB,MAAM,CACN,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,57 @@
1
+ import "reflect-metadata";
2
+ import { OPTIONAL_WATERMARK, PROPERTY_OPTIONAL_DEPS_METADATA, SELF_DECLARED_OPTIONAL_DEPS_METADATA, } from "../interfaces/index.js";
3
+ /**
4
+ * Marks a dependency as optional.
5
+ *
6
+ * When a dependency is marked as optional, the container will not throw an error
7
+ * if the provider is not found. Instead, it will inject `undefined`.
8
+ *
9
+ * This is useful for:
10
+ * - Optional features that may not be available in all configurations
11
+ * - Graceful degradation when certain services are not registered
12
+ * - Testing scenarios where you want to omit certain dependencies
13
+ *
14
+ * @returns A decorator that can be applied to constructor parameters or properties
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Optional constructor parameter
19
+ * @Injectable()
20
+ * class UserService {
21
+ * constructor(
22
+ * private db: Database,
23
+ * @Optional() private cache?: CacheService
24
+ * ) {
25
+ * // cache will be undefined if CacheService is not registered
26
+ * }
27
+ * }
28
+ *
29
+ * // Optional property injection
30
+ * @Injectable()
31
+ * class ProductService {
32
+ * @Optional()
33
+ * @Inject('ANALYTICS')
34
+ * private analytics?: AnalyticsService;
35
+ *
36
+ * trackEvent(event: string) {
37
+ * // Only track if analytics service is available
38
+ * this.analytics?.track(event);
39
+ * }
40
+ * }
41
+ * ```
42
+ */
43
+ export function Optional() {
44
+ return (target, propertyKey, parameterIndex) => {
45
+ Reflect.defineMetadata(OPTIONAL_WATERMARK, true, target);
46
+ if (parameterIndex === undefined) {
47
+ let properties = Reflect.getMetadata(PROPERTY_OPTIONAL_DEPS_METADATA, target) || [];
48
+ properties = [...properties, { key: propertyKey }];
49
+ Reflect.defineMetadata(PROPERTY_OPTIONAL_DEPS_METADATA, properties, target.constructor);
50
+ return;
51
+ }
52
+ let properties = Reflect.getMetadata(SELF_DECLARED_OPTIONAL_DEPS_METADATA, target) || [];
53
+ properties = [...properties, { index: parameterIndex }];
54
+ Reflect.defineMetadata(SELF_DECLARED_OPTIONAL_DEPS_METADATA, properties, target);
55
+ };
56
+ }
57
+ //# sourceMappingURL=optional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/decorators/optional.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EACN,kBAAkB,EAClB,+BAA+B,EAC/B,oCAAoC,GACpC,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,QAAQ;IACvB,OAAO,CACN,MAAc,EACd,WAA6B,EAC7B,cAAuB,EACtB,EAAE;QACH,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU,GACb,OAAO,CAAC,WAAW,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpE,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,cAAc,CACrB,+BAA+B,EAC/B,UAAU,EACV,MAAM,CAAC,WAAW,CAClB,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,UAAU,GACb,OAAO,CAAC,WAAW,CAAC,oCAAoC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzE,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,cAAc,CACrB,oCAAoC,EACpC,UAAU,EACV,MAAM,CACN,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Re-export shared types and errors
2
+ export { ContainerNotCompiledError } from "@nexus-ioc/shared";
3
+ export { Container } from "./core/modules/container.js";
4
+ export { NexusApplications } from "./core/nexus-applications.js";
5
+ export { Global } from "./decorators/global.js";
6
+ export { Inject } from "./decorators/inject.js";
7
+ export { Injectable } from "./decorators/injectable.js";
8
+ export { NsModule } from "./decorators/nsModule.js";
9
+ export { Optional } from "./decorators/optional.js";
10
+ export * from "./interfaces/index.js";
11
+ export * from "./utils/helpers.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=abstract.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.interface.js","sourceRoot":"","sources":["../../../src/interfaces/abstract.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export const INJECTABLE_WATERMARK = "__injectable__";
2
+ export const INJECTABLE_OPTIONS = "__injectable:options__";
3
+ export const INJECT_WATERMARK = "__inject__";
4
+ export const OPTIONAL_WATERMARK = "__optional__";
5
+ export const MODULE_WATERMARK = "__module__";
6
+ export const MODULE_GLOBAL_WATERMARK = "__module:global__";
7
+ export const PROVIDER_TOKEN_WATERMARK = "__provider__token__";
8
+ export const MODULE_TOKEN_WATERMARK = "__module__token__";
9
+ export const SELF_DECLARED_DEPS_METADATA = "self:paramtypes";
10
+ export const PROPERTY_DEPS_METADATA = "self:properties_metadata";
11
+ export const SELF_DECLARED_OPTIONAL_DEPS_METADATA = "self:paramtypes:optional";
12
+ export const PROPERTY_OPTIONAL_DEPS_METADATA = "self:properties_metadata:optional";
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,oCAAoC,GAAG,0BAA0B,CAAC;AAC/E,MAAM,CAAC,MAAM,+BAA+B,GAC3C,mCAAmC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dynamic-module.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-module.interface.js","sourceRoot":"","sources":["../../../src/interfaces/dynamic-module.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export * from "./abstract.interface.js";
2
+ export * from "./constants.js";
3
+ export * from "./dynamic-module.interface.js";
4
+ export * from "./injectable.interface.js";
5
+ export * from "./injection-token.interface.js";
6
+ export * from "./module-metadata.interface.js";
7
+ export * from "./module-types.interface.js";
8
+ export * from "./modules/index.js";
9
+ export * from "./nexus-application.interface.js";
10
+ export * from "./on-module-init.interface.js";
11
+ export * from "./plugins/index.js";
12
+ export * from "./scope.interface.js";
13
+ export * from "./type.interface.js";
14
+ export * from "./utils/index.js";
15
+ export * from "./validate-module-keys.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=injectable.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.interface.js","sourceRoot":"","sources":["../../../src/interfaces/injectable.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=injection-token.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-token.interface.js","sourceRoot":"","sources":["../../../src/interfaces/injection-token.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-metadata.interface.js","sourceRoot":"","sources":["../../../src/interfaces/module-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module-types.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-types.interface.js","sourceRoot":"","sources":["../../../src/interfaces/module-types.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=container.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/modules/container.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export * from "./container.interface.js";
2
+ export * from "./module-container.interface.js";
3
+ export * from "./module-container-factory.interface.js";
4
+ export * from "./module-graph.interface.js";
5
+ export * from "./module-token-factory.interface.js";
6
+ export * from "./modules-container.interface.js";
7
+ export * from "./provider-token-factory.interface.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/interfaces/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module-container-factory.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-container-factory.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/modules/module-container-factory.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module-container.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-container.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/modules/module-container.interface.ts"],"names":[],"mappings":""}