@nexus-ioc/core 0.4.1 → 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/{core → cjs/core}/modules/module-token-factory.js +10 -11
  19. package/dist/cjs/core/modules/module-token-factory.js.map +1 -0
  20. package/dist/cjs/core/modules/modules-container.js.map +1 -0
  21. package/dist/{core → cjs/core}/nexus-applications.browser.js +19 -2
  22. package/dist/cjs/core/nexus-applications.browser.js.map +1 -0
  23. package/dist/cjs/core/nexus-applications.js +204 -0
  24. package/dist/cjs/core/nexus-applications.js.map +1 -0
  25. package/dist/{core → cjs/core}/nexus-applications.server.js +19 -2
  26. package/dist/cjs/core/nexus-applications.server.js.map +1 -0
  27. package/dist/{core → cjs/core}/resolver/providers-container.js +1 -1
  28. package/dist/cjs/core/resolver/providers-container.js.map +1 -0
  29. package/dist/{core → cjs/core}/resolver/resolver.js +53 -14
  30. package/dist/cjs/core/resolver/resolver.js.map +1 -0
  31. package/dist/{decorators → cjs/decorators}/global.js +1 -1
  32. package/dist/cjs/decorators/global.js.map +1 -0
  33. package/dist/{decorators → cjs/decorators}/inject.js +39 -0
  34. package/dist/cjs/decorators/inject.js.map +1 -0
  35. package/dist/cjs/decorators/injectable.js +46 -0
  36. package/dist/cjs/decorators/injectable.js.map +1 -0
  37. package/dist/cjs/decorators/nsModule.js +57 -0
  38. package/dist/cjs/decorators/nsModule.js.map +1 -0
  39. package/dist/cjs/decorators/optional.js +60 -0
  40. package/dist/cjs/decorators/optional.js.map +1 -0
  41. package/dist/{index.js → cjs/index.js} +13 -6
  42. package/dist/cjs/index.js.map +1 -0
  43. package/dist/cjs/interfaces/abstract.interface.js.map +1 -0
  44. package/dist/cjs/interfaces/constants.js.map +1 -0
  45. package/dist/cjs/interfaces/dynamic-module.interface.js.map +1 -0
  46. package/dist/{interfaces → cjs/interfaces}/index.js +6 -6
  47. package/dist/cjs/interfaces/index.js.map +1 -0
  48. package/dist/cjs/interfaces/injectable.interface.js.map +1 -0
  49. package/dist/cjs/interfaces/injection-token.interface.js.map +1 -0
  50. package/dist/cjs/interfaces/module-metadata.interface.js.map +1 -0
  51. package/dist/cjs/interfaces/module-types.interface.js.map +1 -0
  52. package/dist/cjs/interfaces/modules/container.interface.js.map +1 -0
  53. package/dist/{interfaces → cjs/interfaces}/modules/index.js +1 -1
  54. package/dist/cjs/interfaces/modules/index.js.map +1 -0
  55. package/dist/cjs/interfaces/modules/module-container-factory.interface.js.map +1 -0
  56. package/dist/cjs/interfaces/modules/module-container.interface.js.map +1 -0
  57. package/dist/cjs/interfaces/modules/module-graph.interface.js.map +1 -0
  58. package/dist/cjs/interfaces/modules/module-token-factory.interface.js.map +1 -0
  59. package/dist/cjs/interfaces/modules/modules-container.interface.js.map +1 -0
  60. package/dist/cjs/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  61. package/dist/cjs/interfaces/nexus-application.interface.js.map +1 -0
  62. package/dist/cjs/interfaces/on-module-init.interface.js.map +1 -0
  63. package/dist/{interfaces → cjs/interfaces}/plugins/index.js +1 -1
  64. package/dist/cjs/interfaces/plugins/index.js.map +1 -0
  65. package/dist/cjs/interfaces/plugins/module-plugin.interface.js.map +1 -0
  66. package/dist/cjs/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  67. package/dist/cjs/interfaces/scope.interface.js +59 -0
  68. package/dist/cjs/interfaces/scope.interface.js.map +1 -0
  69. package/dist/cjs/interfaces/type.interface.js.map +1 -0
  70. package/dist/cjs/interfaces/utils/hash-utils.interface.js.map +1 -0
  71. package/dist/cjs/interfaces/utils/index.js.map +1 -0
  72. package/dist/{interfaces → cjs/interfaces}/validate-module-keys.js +1 -1
  73. package/dist/cjs/interfaces/validate-module-keys.js.map +1 -0
  74. package/dist/cjs/server.js.map +1 -0
  75. package/dist/{utils → cjs/utils}/hash-utils.browser.js +5 -3
  76. package/dist/cjs/utils/hash-utils.browser.js.map +1 -0
  77. package/dist/cjs/utils/hash-utils.js +25 -0
  78. package/dist/cjs/utils/hash-utils.js.map +1 -0
  79. package/dist/{utils → cjs/utils}/hash-utils.server.js +5 -3
  80. package/dist/cjs/utils/hash-utils.server.js.map +1 -0
  81. package/dist/{utils → cjs/utils}/helpers.js +2 -7
  82. package/dist/cjs/utils/helpers.js.map +1 -0
  83. package/dist/{utils → cjs/utils}/shared.utils.js +15 -16
  84. package/dist/cjs/utils/shared.utils.js.map +1 -0
  85. package/dist/esm/browser.js +2 -0
  86. package/dist/esm/browser.js.map +1 -0
  87. package/dist/esm/core/graph/analyze-module.js +78 -0
  88. package/dist/esm/core/graph/analyze-module.js.map +1 -0
  89. package/dist/esm/core/graph/analyze-provider.js +53 -0
  90. package/dist/esm/core/graph/analyze-provider.js.map +1 -0
  91. package/dist/esm/core/graph/helpers/index.js +17 -0
  92. package/dist/esm/core/graph/helpers/index.js.map +1 -0
  93. package/dist/esm/core/graph/module-graph.js +402 -0
  94. package/dist/esm/core/graph/module-graph.js.map +1 -0
  95. package/dist/esm/core/graph/providers/analyze-class-provider.js +13 -0
  96. package/dist/esm/core/graph/providers/analyze-class-provider.js.map +1 -0
  97. package/dist/esm/core/graph/providers/analyze-factory-provider.js +13 -0
  98. package/dist/esm/core/graph/providers/analyze-factory-provider.js.map +1 -0
  99. package/dist/esm/core/graph/providers/analyze-function-provider.js +7 -0
  100. package/dist/esm/core/graph/providers/analyze-function-provider.js.map +1 -0
  101. package/dist/esm/core/graph/providers/analyze-value-provider.js +13 -0
  102. package/dist/esm/core/graph/providers/analyze-value-provider.js.map +1 -0
  103. package/dist/esm/core/graph/providers/provider-factory.js +21 -0
  104. package/dist/esm/core/graph/providers/provider-factory.js.map +1 -0
  105. package/dist/esm/core/modules/container.js +178 -0
  106. package/dist/esm/core/modules/container.js.map +1 -0
  107. package/dist/esm/core/modules/module-container-factory.js +21 -0
  108. package/dist/esm/core/modules/module-container-factory.js.map +1 -0
  109. package/dist/esm/core/modules/module-container.js +58 -0
  110. package/dist/esm/core/modules/module-container.js.map +1 -0
  111. package/dist/esm/core/modules/module-token-factory.js +43 -0
  112. package/dist/esm/core/modules/module-token-factory.js.map +1 -0
  113. package/dist/esm/core/modules/modules-container.js +39 -0
  114. package/dist/esm/core/modules/modules-container.js.map +1 -0
  115. package/dist/esm/core/nexus-applications.browser.js +49 -0
  116. package/dist/esm/core/nexus-applications.browser.js.map +1 -0
  117. package/dist/esm/core/nexus-applications.js +200 -0
  118. package/dist/esm/core/nexus-applications.js.map +1 -0
  119. package/dist/esm/core/nexus-applications.server.js +49 -0
  120. package/dist/esm/core/nexus-applications.server.js.map +1 -0
  121. package/dist/esm/core/resolver/providers-container.js +4 -0
  122. package/dist/esm/core/resolver/providers-container.js.map +1 -0
  123. package/dist/esm/core/resolver/resolver.js +161 -0
  124. package/dist/esm/core/resolver/resolver.js.map +1 -0
  125. package/dist/esm/decorators/global.js +9 -0
  126. package/dist/esm/decorators/global.js.map +1 -0
  127. package/dist/esm/decorators/inject.js +63 -0
  128. package/dist/esm/decorators/inject.js.map +1 -0
  129. package/dist/esm/decorators/injectable.js +43 -0
  130. package/dist/esm/decorators/injectable.js.map +1 -0
  131. package/dist/esm/decorators/nsModule.js +54 -0
  132. package/dist/esm/decorators/nsModule.js.map +1 -0
  133. package/dist/esm/decorators/optional.js +57 -0
  134. package/dist/esm/decorators/optional.js.map +1 -0
  135. package/dist/esm/index.js +12 -0
  136. package/dist/esm/index.js.map +1 -0
  137. package/dist/esm/interfaces/abstract.interface.js +2 -0
  138. package/dist/esm/interfaces/abstract.interface.js.map +1 -0
  139. package/dist/esm/interfaces/constants.js +13 -0
  140. package/dist/esm/interfaces/constants.js.map +1 -0
  141. package/dist/esm/interfaces/dynamic-module.interface.js +2 -0
  142. package/dist/esm/interfaces/dynamic-module.interface.js.map +1 -0
  143. package/dist/esm/interfaces/index.js +16 -0
  144. package/dist/esm/interfaces/index.js.map +1 -0
  145. package/dist/esm/interfaces/injectable.interface.js +2 -0
  146. package/dist/esm/interfaces/injectable.interface.js.map +1 -0
  147. package/dist/esm/interfaces/injection-token.interface.js +2 -0
  148. package/dist/esm/interfaces/injection-token.interface.js.map +1 -0
  149. package/dist/esm/interfaces/module-metadata.interface.js +2 -0
  150. package/dist/esm/interfaces/module-metadata.interface.js.map +1 -0
  151. package/dist/esm/interfaces/module-types.interface.js +2 -0
  152. package/dist/esm/interfaces/module-types.interface.js.map +1 -0
  153. package/dist/esm/interfaces/modules/container.interface.js +2 -0
  154. package/dist/esm/interfaces/modules/container.interface.js.map +1 -0
  155. package/dist/esm/interfaces/modules/index.js +8 -0
  156. package/dist/esm/interfaces/modules/index.js.map +1 -0
  157. package/dist/esm/interfaces/modules/module-container-factory.interface.js +2 -0
  158. package/dist/esm/interfaces/modules/module-container-factory.interface.js.map +1 -0
  159. package/dist/esm/interfaces/modules/module-container.interface.js +2 -0
  160. package/dist/esm/interfaces/modules/module-container.interface.js.map +1 -0
  161. package/dist/esm/interfaces/modules/module-graph.interface.js +13 -0
  162. package/dist/esm/interfaces/modules/module-graph.interface.js.map +1 -0
  163. package/dist/esm/interfaces/modules/module-token-factory.interface.js +2 -0
  164. package/dist/esm/interfaces/modules/module-token-factory.interface.js.map +1 -0
  165. package/dist/esm/interfaces/modules/modules-container.interface.js +2 -0
  166. package/dist/esm/interfaces/modules/modules-container.interface.js.map +1 -0
  167. package/dist/esm/interfaces/modules/provider-token-factory.interface.js +2 -0
  168. package/dist/esm/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  169. package/dist/esm/interfaces/nexus-application.interface.js +2 -0
  170. package/dist/esm/interfaces/nexus-application.interface.js.map +1 -0
  171. package/dist/esm/interfaces/on-module-init.interface.js +2 -0
  172. package/dist/esm/interfaces/on-module-init.interface.js.map +1 -0
  173. package/dist/esm/interfaces/plugins/index.js +3 -0
  174. package/dist/esm/interfaces/plugins/index.js.map +1 -0
  175. package/dist/esm/interfaces/plugins/module-plugin.interface.js +2 -0
  176. package/dist/esm/interfaces/plugins/module-plugin.interface.js.map +1 -0
  177. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js +2 -0
  178. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  179. package/dist/esm/interfaces/scope.interface.js +56 -0
  180. package/dist/esm/interfaces/scope.interface.js.map +1 -0
  181. package/dist/esm/interfaces/type.interface.js +2 -0
  182. package/dist/esm/interfaces/type.interface.js.map +1 -0
  183. package/dist/esm/interfaces/utils/hash-utils.interface.js +2 -0
  184. package/dist/esm/interfaces/utils/hash-utils.interface.js.map +1 -0
  185. package/dist/esm/interfaces/utils/index.js +2 -0
  186. package/dist/esm/interfaces/utils/index.js.map +1 -0
  187. package/dist/esm/interfaces/validate-module-keys.js +21 -0
  188. package/dist/esm/interfaces/validate-module-keys.js.map +1 -0
  189. package/dist/esm/package.json +1 -0
  190. package/dist/esm/server.js +2 -0
  191. package/dist/esm/server.js.map +1 -0
  192. package/dist/esm/utils/hash-utils.browser.js +20 -0
  193. package/dist/esm/utils/hash-utils.browser.js.map +1 -0
  194. package/dist/esm/utils/hash-utils.js +21 -0
  195. package/dist/esm/utils/hash-utils.js.map +1 -0
  196. package/dist/esm/utils/hash-utils.server.js +17 -0
  197. package/dist/esm/utils/hash-utils.server.js.map +1 -0
  198. package/dist/esm/utils/helpers.js +63 -0
  199. package/dist/esm/utils/helpers.js.map +1 -0
  200. package/dist/esm/utils/shared.utils.js +49 -0
  201. package/dist/esm/utils/shared.utils.js.map +1 -0
  202. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  203. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  204. package/dist/{core → types/core}/graph/analyze-module.d.ts +4 -4
  205. package/dist/{core → types/core}/graph/analyze-provider.d.ts +4 -4
  206. package/dist/{core → types/core}/graph/module-graph.d.ts +1 -1
  207. package/dist/{core → types/core}/graph/providers/analyze-class-provider.d.ts +2 -2
  208. package/dist/{core → types/core}/graph/providers/analyze-factory-provider.d.ts +2 -2
  209. package/dist/{core → types/core}/graph/providers/analyze-value-provider.d.ts +1 -1
  210. package/dist/types/core/modules/container.d.ts +154 -0
  211. package/dist/{core → types/core}/modules/module-container.d.ts +1 -1
  212. package/dist/{core → types/core}/modules/module-token-factory.d.ts +1 -1
  213. package/dist/{core → types/core}/nexus-applications.browser.d.ts +9 -1
  214. package/dist/types/core/nexus-applications.d.ts +160 -0
  215. package/dist/{core → types/core}/nexus-applications.server.d.ts +9 -1
  216. package/dist/types/decorators/inject.d.ts +42 -0
  217. package/dist/types/decorators/injectable.d.ts +37 -0
  218. package/dist/types/decorators/nsModule.d.ts +44 -0
  219. package/dist/types/decorators/optional.d.ts +42 -0
  220. package/dist/{index.d.ts → types/index.d.ts} +6 -3
  221. package/dist/types/interfaces/module-types.interface.d.ts +158 -0
  222. package/dist/types/interfaces/modules/container.interface.d.ts +8 -0
  223. package/dist/types/interfaces/modules/module-container.interface.d.ts +1 -0
  224. package/dist/{interfaces → types/interfaces}/modules/module-graph.interface.d.ts +3 -23
  225. package/dist/{interfaces → types/interfaces}/nexus-application.interface.d.ts +2 -0
  226. package/dist/types/interfaces/on-module-init.interface.d.ts +51 -0
  227. package/dist/types/interfaces/scope.interface.d.ts +54 -0
  228. package/dist/types/interfaces/utils/hash-utils.interface.d.ts +1 -0
  229. package/dist/{interfaces → types/interfaces}/validate-module-keys.d.ts +1 -1
  230. package/dist/{utils → types/utils}/hash-utils.browser.d.ts +2 -1
  231. package/dist/types/utils/hash-utils.d.ts +7 -0
  232. package/dist/{utils → types/utils}/hash-utils.server.d.ts +2 -1
  233. package/dist/{utils → types/utils}/helpers.d.ts +0 -1
  234. package/package.json +83 -61
  235. package/dist/browser.js.map +0 -1
  236. package/dist/core/graph/analyze-module.js.map +0 -1
  237. package/dist/core/graph/analyze-provider.js.map +0 -1
  238. package/dist/core/graph/helpers/index.js.map +0 -1
  239. package/dist/core/graph/module-graph.js.map +0 -1
  240. package/dist/core/graph/providers/analyze-class-provider.js.map +0 -1
  241. package/dist/core/graph/providers/analyze-factory-provider.js.map +0 -1
  242. package/dist/core/graph/providers/analyze-function-provider.js.map +0 -1
  243. package/dist/core/graph/providers/analyze-value-provider.js.map +0 -1
  244. package/dist/core/graph/providers/provider-factory.js.map +0 -1
  245. package/dist/core/modules/container.d.ts +0 -15
  246. package/dist/core/modules/container.js +0 -40
  247. package/dist/core/modules/container.js.map +0 -1
  248. package/dist/core/modules/module-container-factory.js.map +0 -1
  249. package/dist/core/modules/module-container.js.map +0 -1
  250. package/dist/core/modules/module-token-factory.js.map +0 -1
  251. package/dist/core/modules/modules-container.js.map +0 -1
  252. package/dist/core/nexus-applications.browser.js.map +0 -1
  253. package/dist/core/nexus-applications.server.js.map +0 -1
  254. package/dist/core/resolver/providers-container.js.map +0 -1
  255. package/dist/core/resolver/resolver.js.map +0 -1
  256. package/dist/decorators/global.js.map +0 -1
  257. package/dist/decorators/inject.d.ts +0 -3
  258. package/dist/decorators/inject.js.map +0 -1
  259. package/dist/decorators/injectable.d.ts +0 -3
  260. package/dist/decorators/injectable.js +0 -12
  261. package/dist/decorators/injectable.js.map +0 -1
  262. package/dist/decorators/nsModule.d.ts +0 -3
  263. package/dist/decorators/nsModule.js +0 -16
  264. package/dist/decorators/nsModule.js.map +0 -1
  265. package/dist/decorators/optional.d.ts +0 -2
  266. package/dist/decorators/optional.js +0 -20
  267. package/dist/decorators/optional.js.map +0 -1
  268. package/dist/errors/container-not-compiled.error.d.ts +0 -3
  269. package/dist/errors/container-not-compiled.error.js +0 -12
  270. package/dist/errors/container-not-compiled.error.js.map +0 -1
  271. package/dist/index.js.map +0 -1
  272. package/dist/interfaces/abstract.interface.js.map +0 -1
  273. package/dist/interfaces/constants.js.map +0 -1
  274. package/dist/interfaces/dynamic-module.interface.js.map +0 -1
  275. package/dist/interfaces/index.js.map +0 -1
  276. package/dist/interfaces/injectable.interface.js.map +0 -1
  277. package/dist/interfaces/injection-token.interface.js.map +0 -1
  278. package/dist/interfaces/module-metadata.interface.js.map +0 -1
  279. package/dist/interfaces/module-types.interface.d.ts +0 -20
  280. package/dist/interfaces/module-types.interface.js.map +0 -1
  281. package/dist/interfaces/modules/container.interface.d.ts +0 -16
  282. package/dist/interfaces/modules/container.interface.js.map +0 -1
  283. package/dist/interfaces/modules/index.js.map +0 -1
  284. package/dist/interfaces/modules/module-container-factory.interface.js.map +0 -1
  285. package/dist/interfaces/modules/module-container.interface.d.ts +0 -13
  286. package/dist/interfaces/modules/module-container.interface.js.map +0 -1
  287. package/dist/interfaces/modules/module-graph.interface.js.map +0 -1
  288. package/dist/interfaces/modules/module-token-factory.interface.js.map +0 -1
  289. package/dist/interfaces/modules/modules-container.interface.js.map +0 -1
  290. package/dist/interfaces/modules/provider-token-factory.interface.js.map +0 -1
  291. package/dist/interfaces/nexus-application.interface.js.map +0 -1
  292. package/dist/interfaces/on-module-init.interface.d.ts +0 -3
  293. package/dist/interfaces/on-module-init.interface.js.map +0 -1
  294. package/dist/interfaces/plugins/index.js.map +0 -1
  295. package/dist/interfaces/plugins/module-plugin.interface.js.map +0 -1
  296. package/dist/interfaces/plugins/scanner-plugin.interface.js.map +0 -1
  297. package/dist/interfaces/scope.interface.d.ts +0 -4
  298. package/dist/interfaces/scope.interface.js +0 -9
  299. package/dist/interfaces/scope.interface.js.map +0 -1
  300. package/dist/interfaces/type.interface.js.map +0 -1
  301. package/dist/interfaces/utils/hash-utils.interface.d.ts +0 -5
  302. package/dist/interfaces/utils/hash-utils.interface.js.map +0 -1
  303. package/dist/interfaces/utils/index.js.map +0 -1
  304. package/dist/interfaces/validate-module-keys.js.map +0 -1
  305. package/dist/server.js.map +0 -1
  306. package/dist/utils/hash-utils.browser.js.map +0 -1
  307. package/dist/utils/hash-utils.server.js.map +0 -1
  308. package/dist/utils/helpers.js.map +0 -1
  309. package/dist/utils/random-string-generator.util.d.ts +0 -1
  310. package/dist/utils/random-string-generator.util.js +0 -7
  311. package/dist/utils/random-string-generator.util.js.map +0 -1
  312. package/dist/utils/shared.utils.js.map +0 -1
  313. package/dist/{browser.js → cjs/browser.js} +0 -0
  314. package/dist/{core → cjs/core}/graph/analyze-module.js +0 -0
  315. package/dist/{core → cjs/core}/graph/analyze-provider.js +0 -0
  316. package/dist/{core → cjs/core}/graph/helpers/index.js +0 -0
  317. package/dist/{core → cjs/core}/graph/providers/analyze-class-provider.js +0 -0
  318. package/dist/{core → cjs/core}/graph/providers/analyze-factory-provider.js +0 -0
  319. package/dist/{core → cjs/core}/graph/providers/analyze-function-provider.js +0 -0
  320. package/dist/{core → cjs/core}/graph/providers/analyze-value-provider.js +0 -0
  321. package/dist/{core → cjs/core}/graph/providers/provider-factory.js +0 -0
  322. package/dist/{core → cjs/core}/modules/module-container-factory.js +0 -0
  323. package/dist/{core → cjs/core}/modules/modules-container.js +0 -0
  324. package/dist/{interfaces → cjs/interfaces}/abstract.interface.js +0 -0
  325. package/dist/{interfaces → cjs/interfaces}/constants.js +0 -0
  326. package/dist/{interfaces → cjs/interfaces}/dynamic-module.interface.js +0 -0
  327. package/dist/{interfaces → cjs/interfaces}/injectable.interface.js +0 -0
  328. package/dist/{interfaces → cjs/interfaces}/injection-token.interface.js +0 -0
  329. package/dist/{interfaces → cjs/interfaces}/module-metadata.interface.js +0 -0
  330. package/dist/{interfaces → cjs/interfaces}/module-types.interface.js +0 -0
  331. package/dist/{interfaces → cjs/interfaces}/modules/container.interface.js +0 -0
  332. package/dist/{interfaces → cjs/interfaces}/modules/module-container-factory.interface.js +0 -0
  333. package/dist/{interfaces → cjs/interfaces}/modules/module-container.interface.js +0 -0
  334. package/dist/{interfaces → cjs/interfaces}/modules/module-graph.interface.js +0 -0
  335. package/dist/{interfaces → cjs/interfaces}/modules/module-token-factory.interface.js +0 -0
  336. package/dist/{interfaces → cjs/interfaces}/modules/modules-container.interface.js +0 -0
  337. package/dist/{interfaces → cjs/interfaces}/modules/provider-token-factory.interface.js +0 -0
  338. package/dist/{interfaces → cjs/interfaces}/nexus-application.interface.js +0 -0
  339. package/dist/{interfaces → cjs/interfaces}/on-module-init.interface.js +0 -0
  340. package/dist/{interfaces → cjs/interfaces}/plugins/module-plugin.interface.js +0 -0
  341. package/dist/{interfaces → cjs/interfaces}/plugins/scanner-plugin.interface.js +0 -0
  342. package/dist/{interfaces → cjs/interfaces}/type.interface.js +0 -0
  343. package/dist/{interfaces → cjs/interfaces}/utils/hash-utils.interface.js +0 -0
  344. package/dist/{interfaces → cjs/interfaces}/utils/index.js +0 -0
  345. package/dist/{server.js → cjs/server.js} +0 -0
  346. package/dist/{browser.d.ts → types/browser.d.ts} +0 -0
  347. package/dist/{core → types/core}/graph/helpers/index.d.ts +0 -0
  348. package/dist/{core → types/core}/graph/providers/analyze-function-provider.d.ts +0 -0
  349. package/dist/{core → types/core}/graph/providers/provider-factory.d.ts +0 -0
  350. package/dist/{core → types/core}/modules/module-container-factory.d.ts +0 -0
  351. package/dist/{core → types/core}/modules/modules-container.d.ts +0 -0
  352. package/dist/{core → types/core}/resolver/providers-container.d.ts +0 -0
  353. package/dist/{core → types/core}/resolver/resolver.d.ts +0 -0
  354. package/dist/{decorators → types/decorators}/global.d.ts +0 -0
  355. package/dist/{interfaces → types/interfaces}/abstract.interface.d.ts +0 -0
  356. package/dist/{interfaces → types/interfaces}/constants.d.ts +0 -0
  357. package/dist/{interfaces → types/interfaces}/dynamic-module.interface.d.ts +0 -0
  358. package/dist/{interfaces → types/interfaces}/index.d.ts +6 -6
  359. package/dist/{interfaces → types/interfaces}/injectable.interface.d.ts +0 -0
  360. package/dist/{interfaces → types/interfaces}/injection-token.interface.d.ts +0 -0
  361. package/dist/{interfaces → types/interfaces}/module-metadata.interface.d.ts +0 -0
  362. package/dist/{interfaces → types/interfaces}/modules/index.d.ts +1 -1
  363. package/dist/{interfaces → types/interfaces}/modules/module-container-factory.interface.d.ts +0 -0
  364. package/dist/{interfaces → types/interfaces}/modules/module-token-factory.interface.d.ts +0 -0
  365. package/dist/{interfaces → types/interfaces}/modules/modules-container.interface.d.ts +0 -0
  366. package/dist/{interfaces → types/interfaces}/modules/provider-token-factory.interface.d.ts +0 -0
  367. package/dist/{interfaces → types/interfaces}/plugins/index.d.ts +1 -1
  368. /package/dist/{interfaces → types/interfaces}/plugins/module-plugin.interface.d.ts +0 -0
  369. /package/dist/{interfaces → types/interfaces}/plugins/scanner-plugin.interface.d.ts +0 -0
  370. /package/dist/{interfaces → types/interfaces}/type.interface.d.ts +0 -0
  371. /package/dist/{interfaces → types/interfaces}/utils/index.d.ts +0 -0
  372. /package/dist/{server.d.ts → types/server.d.ts} +0 -0
  373. /package/dist/{utils → types/utils}/shared.utils.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import { AnalyzeClassProvider } from "../providers/analyze-class-provider.js";
2
+ import { AnalyzeFactoryProvider } from "../providers/analyze-factory-provider.js";
3
+ import { AnalyzeFunctionProvider } from "../providers/analyze-function-provider.js";
4
+ import { AnalyzeValueProvider } from "../providers/analyze-value-provider.js";
5
+ export function isAnalyzeClassProvider(target) {
6
+ return target instanceof AnalyzeClassProvider;
7
+ }
8
+ export function isAnalyzeFactoryProvider(target) {
9
+ return target instanceof AnalyzeFactoryProvider;
10
+ }
11
+ export function isAnalyzeFunctionProvider(target) {
12
+ return target instanceof AnalyzeFunctionProvider;
13
+ }
14
+ export function isAnalyzeValueProvider(target) {
15
+ return target instanceof AnalyzeValueProvider;
16
+ }
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/graph/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,UAAU,sBAAsB,CACrC,MAAuB;IAEvB,OAAO,MAAM,YAAY,oBAAoB,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,MAAuB;IAEvB,OAAO,MAAM,YAAY,sBAAsB,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,MAAuB;IAEvB,OAAO,MAAM,YAAY,uBAAuB,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,MAAuB;IAEvB,OAAO,MAAM,YAAY,oBAAoB,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,402 @@
1
+ import { EdgeTypeEnum, MODULE_TOKEN_WATERMARK, MODULE_WATERMARK, NodeTypeEnum, PROPERTY_DEPS_METADATA, PROPERTY_OPTIONAL_DEPS_METADATA, SELF_DECLARED_DEPS_METADATA, SELF_DECLARED_OPTIONAL_DEPS_METADATA, } from "../../interfaces/index.js";
2
+ import { getDependencyToken, getProviderToken, isModule, } from "../../utils/helpers.js";
3
+ import { AnalyzeModule } from "./analyze-module.js";
4
+ import { isAnalyzeClassProvider, isAnalyzeFactoryProvider, isAnalyzeFunctionProvider, } from "./helpers/index.js";
5
+ import { ProviderFactory } from "./providers/provider-factory.js";
6
+ /**
7
+ * Helper function to safely convert InjectionToken to string for error messages
8
+ */
9
+ function tokenToString(token) {
10
+ return typeof token === "function" ? token.name : String(token);
11
+ }
12
+ /**
13
+ * Type guard to check if a node is an AnalyzeProvider
14
+ */
15
+ function isProviderNode(entry) {
16
+ return entry[1].type === NodeTypeEnum.PROVIDER;
17
+ }
18
+ export class ModuleGraph {
19
+ constructor(_root) {
20
+ this._root = _root;
21
+ this._nodes = new Map();
22
+ this._edges = new Map();
23
+ this._globalModules = new Map();
24
+ this._errors = [];
25
+ }
26
+ get nodes() {
27
+ return this._nodes;
28
+ }
29
+ get edges() {
30
+ return this._edges;
31
+ }
32
+ get errors() {
33
+ return this._errors;
34
+ }
35
+ async compile() {
36
+ await this.addModules();
37
+ await this.addDependencies();
38
+ await this.detectCircularDependencies();
39
+ await this.detectCircularImports();
40
+ }
41
+ getNode(token) {
42
+ return this._nodes.get(token);
43
+ }
44
+ getEdge(token) {
45
+ return this._edges.get(token) || [];
46
+ }
47
+ getAllEdges() {
48
+ return [...this._edges.values()];
49
+ }
50
+ getAllNodes() {
51
+ return [...this._nodes.values()];
52
+ }
53
+ // modules analyze
54
+ async addModules() {
55
+ const visited = new Set();
56
+ const imports = [this._root];
57
+ while (imports.length) {
58
+ const importModule = imports.shift();
59
+ if (!importModule || visited.has(importModule.token)) {
60
+ continue;
61
+ }
62
+ const analyzeModule = new AnalyzeModule(importModule);
63
+ await this.addModule(analyzeModule);
64
+ await this.addModuleImports(analyzeModule);
65
+ await this.addModuleProviders(analyzeModule);
66
+ imports.push(...(await analyzeModule.imports));
67
+ visited.add(analyzeModule.id);
68
+ }
69
+ }
70
+ async addModule(analyzeModule) {
71
+ this.addNode(analyzeModule.id, analyzeModule);
72
+ if (analyzeModule.isGlobal) {
73
+ this._globalModules.set(analyzeModule.id, analyzeModule.moduleContainer);
74
+ }
75
+ }
76
+ async addModuleImports(analyzeModule) {
77
+ const imports = await analyzeModule.edges;
78
+ for (const importEdge of imports) {
79
+ this.addEdge(analyzeModule.id, importEdge);
80
+ }
81
+ }
82
+ async addModuleProviders(analyzeModule) {
83
+ for (const provider of analyzeModule.providers) {
84
+ const analyzeProvider = ProviderFactory(provider, analyzeModule.moduleContainer);
85
+ if (analyzeProvider === null) {
86
+ continue;
87
+ }
88
+ this.addNode(analyzeProvider.id, analyzeProvider);
89
+ this.addEdge(analyzeModule.id, analyzeProvider.edge);
90
+ }
91
+ }
92
+ // modules analyze
93
+ // graph helpers
94
+ addEdge(token, edge) {
95
+ const edges = this._edges.get(token) || [];
96
+ edges.push(edge);
97
+ this._edges.set(token, edges);
98
+ }
99
+ addNode(token, node) {
100
+ this._nodes.set(token, node);
101
+ }
102
+ // graph helpers
103
+ // providers dependencies
104
+ async addDependencies() {
105
+ const visited = new Set();
106
+ const providerNodes = [...this.nodes].filter(isProviderNode);
107
+ for (const [token, node] of providerNodes) {
108
+ if (visited.has(token)) {
109
+ continue;
110
+ }
111
+ if (isAnalyzeFactoryProvider(node)) {
112
+ await this.addFactoryProviderDependency(token, node);
113
+ }
114
+ else if (isAnalyzeClassProvider(node)) {
115
+ await this.addClassProviderDependency(token, node);
116
+ }
117
+ else if (isAnalyzeFunctionProvider(node)) {
118
+ await this.addClassDependency(token, node);
119
+ }
120
+ visited.add(token);
121
+ }
122
+ }
123
+ async addClassDependency(token, node) {
124
+ const constructorDependencies = this.getConstructorDependencies(node.metatype);
125
+ const optionalDependency = this.getOptionalConstructorDependencies(node.metatype);
126
+ for (const [index, dependency] of constructorDependencies.entries()) {
127
+ const dependencyToken = getDependencyToken(dependency.param);
128
+ const isExported = optionalDependency.includes(index) ||
129
+ (await this.isProviderExported(node.moduleContainer, dependencyToken));
130
+ if (!isExported) {
131
+ this.errors.push({
132
+ type: "UNREACHED_DEP_CONSTRUCTOR",
133
+ token: node.label,
134
+ dependency: tokenToString(dependencyToken),
135
+ position: dependency.index,
136
+ });
137
+ }
138
+ const newEdge = {
139
+ type: EdgeTypeEnum.DEPENDENCY,
140
+ source: token,
141
+ target: dependencyToken,
142
+ metadata: {
143
+ unreached: !isExported,
144
+ isCircular: false,
145
+ index: dependency.index,
146
+ inject: "constructor",
147
+ },
148
+ };
149
+ this.addEdge(token, newEdge);
150
+ }
151
+ const propertiesDependencies = this.getPropertiesDependencies(node.metatype);
152
+ const optionalProperties = this.getOptionalPropertyDependencies(node.metatype);
153
+ for (const dependency of propertiesDependencies) {
154
+ const dependencyToken = getDependencyToken(dependency.type);
155
+ const isExported = optionalProperties.includes(dependency.key) ||
156
+ (await this.isProviderExported(node.moduleContainer, dependencyToken));
157
+ if (!isExported) {
158
+ this.errors.push({
159
+ type: "UNREACHED_DEP_PROPERTY",
160
+ token: node.label,
161
+ dependency: tokenToString(dependencyToken),
162
+ key: dependency.key,
163
+ });
164
+ }
165
+ const newEdge = {
166
+ type: EdgeTypeEnum.DEPENDENCY,
167
+ source: token,
168
+ target: dependencyToken,
169
+ metadata: {
170
+ unreached: !isExported,
171
+ isCircular: false,
172
+ key: dependency.key,
173
+ inject: "property",
174
+ },
175
+ };
176
+ this.addEdge(token, newEdge);
177
+ }
178
+ }
179
+ async addClassProviderDependency(token, node) {
180
+ const Class = node.useClass;
181
+ const constructorDependencies = this.getConstructorDependencies(Class);
182
+ const optionalDependency = this.getOptionalConstructorDependencies(Class);
183
+ for (const [index, dependency] of constructorDependencies.entries()) {
184
+ const dependencyToken = getDependencyToken(dependency.param);
185
+ const isExported = optionalDependency.includes(index) ||
186
+ (await this.isProviderExported(node.moduleContainer, dependencyToken));
187
+ if (!isExported) {
188
+ this.errors.push({
189
+ type: "UNREACHED_DEP_CONSTRUCTOR",
190
+ token: node.label,
191
+ dependency: tokenToString(dependencyToken),
192
+ position: dependency.index,
193
+ });
194
+ }
195
+ const newEdge = {
196
+ type: EdgeTypeEnum.DEPENDENCY,
197
+ source: token,
198
+ target: dependencyToken,
199
+ metadata: {
200
+ unreached: !isExported,
201
+ isCircular: false,
202
+ index: dependency.index,
203
+ inject: "constructor",
204
+ },
205
+ };
206
+ this.addEdge(token, newEdge);
207
+ }
208
+ const propertiesDependencies = this.getPropertiesDependencies(Class);
209
+ const optionalProperty = this.getOptionalPropertyDependencies(Class);
210
+ for (const dependency of propertiesDependencies) {
211
+ const dependencyToken = getDependencyToken(dependency.type);
212
+ const isExported = optionalProperty.includes(dependency.key) ||
213
+ (await this.isProviderExported(node.moduleContainer, dependencyToken));
214
+ if (!isExported) {
215
+ this.errors.push({
216
+ type: "UNREACHED_DEP_PROPERTY",
217
+ token: node.label,
218
+ dependency: tokenToString(dependencyToken),
219
+ key: dependency.key,
220
+ });
221
+ }
222
+ this.addEdge(token, {
223
+ type: EdgeTypeEnum.DEPENDENCY,
224
+ source: token,
225
+ target: dependencyToken,
226
+ metadata: {
227
+ unreached: !isExported,
228
+ isCircular: false,
229
+ key: dependency.key,
230
+ inject: "property",
231
+ },
232
+ });
233
+ }
234
+ }
235
+ async addFactoryProviderDependency(token, node) {
236
+ const dependencies = node.inject || [];
237
+ let index = 0;
238
+ for (const dependency of dependencies) {
239
+ const isExported = await this.isProviderExported(node.moduleContainer, dependency);
240
+ if (!isExported) {
241
+ this.errors.push({
242
+ type: "UNREACHED_DEP_FACTORY",
243
+ token: node.label,
244
+ dependency: tokenToString(dependency),
245
+ key: index,
246
+ });
247
+ }
248
+ const factoryDependency = {
249
+ type: EdgeTypeEnum.DEPENDENCY,
250
+ source: token,
251
+ target: dependency,
252
+ metadata: {
253
+ unreached: !isExported,
254
+ isCircular: false,
255
+ index: index++,
256
+ inject: "constructor",
257
+ },
258
+ };
259
+ this.addEdge(token, factoryDependency);
260
+ }
261
+ }
262
+ // providers dependencies
263
+ async isProviderExported(moduleContainer, dependencyToken) {
264
+ // check globals
265
+ for (const globalModule of this._globalModules.values()) {
266
+ if (globalModule.exports.some((provider) => provider === dependencyToken)) {
267
+ return true;
268
+ }
269
+ }
270
+ // check globals
271
+ // check internals
272
+ if (moduleContainer.providers.some((provider) => getProviderToken(provider) === dependencyToken)) {
273
+ return true;
274
+ }
275
+ // externals
276
+ const containerImports = await moduleContainer.imports;
277
+ const visitedModules = new Set();
278
+ const queue = containerImports.flatMap((firstLevelContainer) => firstLevelContainer.exports);
279
+ while (queue.length) {
280
+ const currentExportToken = queue.shift();
281
+ if (!currentExportToken || visitedModules.has(currentExportToken)) {
282
+ continue;
283
+ }
284
+ if (currentExportToken === dependencyToken) {
285
+ return true;
286
+ }
287
+ if (isModule(currentExportToken) &&
288
+ Reflect.hasMetadata(MODULE_WATERMARK, currentExportToken)) {
289
+ const token = Reflect.getMetadata(MODULE_TOKEN_WATERMARK, currentExportToken);
290
+ if (typeof token === "string") {
291
+ const moduleContainer = this.getNode(token);
292
+ if (moduleContainer && moduleContainer.type === NodeTypeEnum.MODULE) {
293
+ queue.push(...moduleContainer.exports);
294
+ }
295
+ }
296
+ }
297
+ visitedModules.add(currentExportToken);
298
+ }
299
+ return false;
300
+ }
301
+ async detectCircularDependencies() {
302
+ const visit = (nodeId, path, visited, stack) => {
303
+ if (stack.has(nodeId)) {
304
+ const cyclePath = path.map((node, index) => [node, path[index + 1] || nodeId]);
305
+ const from = cyclePath[0];
306
+ const to = cyclePath[cyclePath.length - 1];
307
+ if (from[0] === to[1]) {
308
+ const _edges = this._edges.get(nodeId);
309
+ for (const [from, to] of cyclePath) {
310
+ const edges = this._edges.get(from);
311
+ if (edges) {
312
+ const edge = edges.find((e) => e.target === to);
313
+ if (edge) {
314
+ edge.metadata.isCircular = true;
315
+ }
316
+ }
317
+ }
318
+ this.errors.push({
319
+ type: "CD_PROVIDERS",
320
+ path: cyclePath,
321
+ });
322
+ }
323
+ return true;
324
+ }
325
+ if (visited.has(nodeId)) {
326
+ return false;
327
+ }
328
+ visited.add(nodeId);
329
+ stack.add(nodeId);
330
+ path.push(nodeId);
331
+ const edges = this.getEdge(nodeId) || [];
332
+ for (const edge of edges) {
333
+ visit(edge.target, path, visited, stack);
334
+ }
335
+ stack.delete(nodeId);
336
+ path.pop();
337
+ return false;
338
+ };
339
+ const providers = [...this._nodes].filter(([_, node]) => node.type === NodeTypeEnum.PROVIDER);
340
+ for (const [nodeId, _] of providers) {
341
+ visit(nodeId, [], new Set(), new Set());
342
+ }
343
+ }
344
+ async detectCircularImports() {
345
+ const visit = (nodeId, path, visited, stack) => {
346
+ if (stack.has(nodeId)) {
347
+ const cycleStartIndex = path.indexOf(nodeId);
348
+ const cyclePath = path.slice(cycleStartIndex);
349
+ for (let i = 0; i < cyclePath.length; i++) {
350
+ const from = cyclePath[i];
351
+ const to = cyclePath[cyclePath.length - 1];
352
+ const edges = this._edges.get(from);
353
+ if (edges) {
354
+ const edge = edges.find((e) => e.source === to);
355
+ if (edge && edge.type === EdgeTypeEnum.IMPORT) {
356
+ this.errors.push({
357
+ type: "CD_IMPORTS",
358
+ path: cyclePath
359
+ .map((token) => this.getNode(token))
360
+ .filter((node) => node !== undefined)
361
+ .map((node) => node.label),
362
+ });
363
+ edge.metadata.isCircular = true;
364
+ }
365
+ }
366
+ }
367
+ return;
368
+ }
369
+ if (visited.has(nodeId)) {
370
+ return;
371
+ }
372
+ visited.add(nodeId);
373
+ stack.add(nodeId);
374
+ path.push(nodeId);
375
+ const edges = this.getEdge(nodeId) || [];
376
+ for (const edge of edges) {
377
+ if (edge.type === EdgeTypeEnum.IMPORT) {
378
+ visit(edge.source, path, visited, stack);
379
+ }
380
+ }
381
+ stack.delete(nodeId);
382
+ path.pop();
383
+ };
384
+ const modules = [...this._nodes].filter(([_, node]) => node.type === NodeTypeEnum.MODULE);
385
+ for (const [nodeId, _] of modules) {
386
+ visit(nodeId, [], new Set(), new Set());
387
+ }
388
+ }
389
+ getConstructorDependencies(provider) {
390
+ return (Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, provider) || []).sort((a, b) => a.index - b.index);
391
+ }
392
+ getOptionalConstructorDependencies(provider) {
393
+ return (Reflect.getMetadata(SELF_DECLARED_OPTIONAL_DEPS_METADATA, provider) || []).map(({ index }) => index);
394
+ }
395
+ getOptionalPropertyDependencies(provider) {
396
+ return (Reflect.getMetadata(PROPERTY_OPTIONAL_DEPS_METADATA, provider) || []).map(({ key }) => key);
397
+ }
398
+ getPropertiesDependencies(provider) {
399
+ return Reflect.getMetadata(PROPERTY_DEPS_METADATA, provider) || [];
400
+ }
401
+ }
402
+ //# sourceMappingURL=module-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-graph.js","sourceRoot":"","sources":["../../../../src/core/graph/module-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AnalyzeProvider } from "../analyze-provider.js";
2
+ export class AnalyzeClassProvider extends AnalyzeProvider {
3
+ get metatype() {
4
+ return this.provider;
5
+ }
6
+ get provide() {
7
+ return this.metatype.provide;
8
+ }
9
+ get useClass() {
10
+ return this.metatype.useClass;
11
+ }
12
+ }
13
+ //# sourceMappingURL=analyze-class-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-class-provider.js","sourceRoot":"","sources":["../../../../../src/core/graph/providers/analyze-class-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACxD,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAyB,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACD"}
@@ -0,0 +1,13 @@
1
+ import { AnalyzeProvider } from "../analyze-provider.js";
2
+ export class AnalyzeFactoryProvider extends AnalyzeProvider {
3
+ get metatype() {
4
+ return this.provider;
5
+ }
6
+ get provide() {
7
+ return this.metatype.provide;
8
+ }
9
+ get inject() {
10
+ return this.metatype.inject;
11
+ }
12
+ }
13
+ //# sourceMappingURL=analyze-factory-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-factory-provider.js","sourceRoot":"","sources":["../../../../../src/core/graph/providers/analyze-factory-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IAC1D,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAA2B,CAAC;IACzC,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;CACD"}
@@ -0,0 +1,7 @@
1
+ import { AnalyzeProvider } from "../analyze-provider.js";
2
+ export class AnalyzeFunctionProvider extends AnalyzeProvider {
3
+ get metatype() {
4
+ return this.provider;
5
+ }
6
+ }
7
+ //# sourceMappingURL=analyze-function-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-function-provider.js","sourceRoot":"","sources":["../../../../../src/core/graph/providers/analyze-function-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC3D,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAgB,CAAC;IAC9B,CAAC;CACD"}
@@ -0,0 +1,13 @@
1
+ import { AnalyzeProvider } from "../analyze-provider.js";
2
+ export class AnalyzeValueProvider extends AnalyzeProvider {
3
+ get metatype() {
4
+ return this.provider;
5
+ }
6
+ get provide() {
7
+ return this.metatype.provide;
8
+ }
9
+ get useValue() {
10
+ return this.metatype.useValue;
11
+ }
12
+ }
13
+ //# sourceMappingURL=analyze-value-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-value-provider.js","sourceRoot":"","sources":["../../../../../src/core/graph/providers/analyze-value-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACxD,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAyB,CAAC;IACvC,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACD"}
@@ -0,0 +1,21 @@
1
+ import { isClassProvider, isFactoryProvider, isFunctionProvider, isValueProvider, } from "../../../utils/helpers.js";
2
+ import { AnalyzeClassProvider } from "./analyze-class-provider.js";
3
+ import { AnalyzeFactoryProvider } from "./analyze-factory-provider.js";
4
+ import { AnalyzeFunctionProvider } from "./analyze-function-provider.js";
5
+ import { AnalyzeValueProvider } from "./analyze-value-provider.js";
6
+ export function ProviderFactory(provider, module) {
7
+ if (isFactoryProvider(provider)) {
8
+ return new AnalyzeFactoryProvider(provider, module);
9
+ }
10
+ if (isClassProvider(provider)) {
11
+ return new AnalyzeClassProvider(provider, module);
12
+ }
13
+ if (isFunctionProvider(provider)) {
14
+ return new AnalyzeFunctionProvider(provider, module);
15
+ }
16
+ if (isValueProvider(provider)) {
17
+ return new AnalyzeValueProvider(provider, module);
18
+ }
19
+ return null;
20
+ }
21
+ //# sourceMappingURL=provider-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../../../../src/core/graph/providers/provider-factory.ts"],"names":[],"mappings":"AACA,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,UAAU,eAAe,CAC9B,QAAkB,EAClB,MAAgC;IAEhC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}