@venok/core 1.0.1-canary.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. package/dist/application/config.js +92 -0
  2. package/dist/application/context.js +252 -0
  3. package/dist/application/factory.js +136 -0
  4. package/dist/constants.js +100 -0
  5. package/dist/context/context-id.factory.js +58 -0
  6. package/dist/context/context.js +186 -0
  7. package/dist/context/creator.js +49 -0
  8. package/dist/context/execution-host.js +51 -0
  9. package/dist/context/proxy.js +55 -0
  10. package/dist/decorators/apply.decorator.js +33 -0
  11. package/dist/decorators/bind.decorator.js +28 -0
  12. package/dist/decorators/catch.decorator.js +29 -0
  13. package/dist/decorators/dependencies.decorator.js +30 -0
  14. package/dist/decorators/exception-filters.decorator.js +40 -0
  15. package/dist/decorators/global.decorator.js +28 -0
  16. package/dist/decorators/inject.decorator.js +42 -0
  17. package/dist/decorators/injectable.decorator.js +38 -0
  18. package/dist/decorators/module.decorator.js +42 -0
  19. package/dist/decorators/optional.decorator.js +35 -0
  20. package/dist/decorators/set-metadata.decorator.js +35 -0
  21. package/dist/decorators/use-guards.decorator.js +39 -0
  22. package/dist/decorators/use-interceptors.decorator.js +39 -0
  23. package/dist/decorators/use-pipes.decorator.js +38 -0
  24. package/dist/enums/scope.enum.js +28 -0
  25. package/dist/enums/shutdown-signal.enum.js +36 -0
  26. package/dist/errors/exceptions/circular-dependency.exception.js +30 -0
  27. package/dist/errors/exceptions/invalid-class-module.exception.js +30 -0
  28. package/dist/errors/exceptions/invalid-class-scope.exception.js +33 -0
  29. package/dist/errors/exceptions/invalid-class.exception.js +30 -0
  30. package/dist/errors/exceptions/invalid-exception-filter.exception.js +30 -0
  31. package/dist/errors/exceptions/invalid-module.exception.js +30 -0
  32. package/dist/errors/exceptions/runtime.exception.js +30 -0
  33. package/dist/errors/exceptions/undefined-dependency.exception.js +30 -0
  34. package/dist/errors/exceptions/undefined-forwardref.exception.js +30 -0
  35. package/dist/errors/exceptions/undefined-module.exception.js +30 -0
  36. package/dist/errors/exceptions/unknown-dependencies.exception.js +38 -0
  37. package/dist/errors/exceptions/unknown-element.exception.js +31 -0
  38. package/dist/errors/exceptions/unknown-export.exception.js +30 -0
  39. package/dist/errors/exceptions/unknown-module.exception.js +29 -0
  40. package/dist/errors/messages.js +134 -0
  41. package/dist/exceptions/handler.js +53 -0
  42. package/dist/exceptions/zone/handler.js +30 -0
  43. package/dist/exceptions/zone/zone.js +49 -0
  44. package/dist/filters/context-creator.js +65 -0
  45. package/dist/filters/context.js +58 -0
  46. package/dist/filters/filter.js +36 -0
  47. package/dist/guards/consumer.js +54 -0
  48. package/dist/guards/context-creator.js +76 -0
  49. package/dist/helpers/color.helper.js +35 -0
  50. package/dist/helpers/context-id-factory.helper.js +25 -0
  51. package/dist/helpers/context.helper.js +65 -0
  52. package/dist/helpers/create-param-decorator.helper.js +73 -0
  53. package/dist/helpers/filter-log-levels.util.js +38 -0
  54. package/dist/helpers/flatten.helper.js +26 -0
  55. package/dist/helpers/is-log-level-enabled.util.js +39 -0
  56. package/dist/helpers/is-log-level.util.js +26 -0
  57. package/dist/helpers/messages.helper.js +23 -0
  58. package/dist/helpers/metadata.helper.js +51 -0
  59. package/dist/helpers/noop.helper.js +23 -0
  60. package/dist/helpers/random-string-generator.helper.js +24 -0
  61. package/dist/helpers/rethrow.helper.js +25 -0
  62. package/dist/helpers/shared.helper.js +49 -0
  63. package/dist/helpers/silent.helper.js +34 -0
  64. package/dist/helpers/transient.helper.js +30 -0
  65. package/dist/helpers/uuid.helper.js +60 -0
  66. package/dist/helpers/validate-each.helper.js +42 -0
  67. package/dist/hooks/before-app-shutdown.hook.js +43 -0
  68. package/dist/hooks/on-app-bootstrap.hook.js +43 -0
  69. package/dist/hooks/on-app-shutdown.hook.js +43 -0
  70. package/dist/hooks/on-module-destroy.hook.js +43 -0
  71. package/dist/hooks/on-module-init.hook.js +43 -0
  72. package/dist/index.d.ts +3142 -0
  73. package/dist/index.js +115 -0
  74. package/dist/injector/constants.js +28 -0
  75. package/dist/injector/container.js +229 -0
  76. package/dist/injector/helpers/barrier.js +48 -0
  77. package/dist/injector/helpers/class-scope.helper.js +27 -0
  78. package/dist/injector/helpers/classifier.helper.js +35 -0
  79. package/dist/injector/helpers/is-durable.helper.js +27 -0
  80. package/dist/injector/injector.js +490 -0
  81. package/dist/injector/instance/links-host.js +68 -0
  82. package/dist/injector/instance/loader.js +95 -0
  83. package/dist/injector/instance/resolver.js +61 -0
  84. package/dist/injector/instance/wrapper.js +324 -0
  85. package/dist/injector/internal-core-module/core-providers.js +42 -0
  86. package/dist/injector/internal-core-module/internal-core-module-factory.js +66 -0
  87. package/dist/injector/internal-core-module/internal-core-module.js +46 -0
  88. package/dist/injector/module/compiler.js +47 -0
  89. package/dist/injector/module/container.js +33 -0
  90. package/dist/injector/module/lazy/loader.js +71 -0
  91. package/dist/injector/module/module.js +395 -0
  92. package/dist/injector/module/ref.js +78 -0
  93. package/dist/injector/module/token-factory.js +82 -0
  94. package/dist/injector/settlement-signal.js +50 -0
  95. package/dist/injector/topology-tree/topology-tree.js +68 -0
  96. package/dist/injector/topology-tree/tree-node.js +68 -0
  97. package/dist/inspector/graph-inspector.js +182 -0
  98. package/dist/inspector/initialize-on-preview.allowlist.js +31 -0
  99. package/dist/inspector/noop-graph-inspector.js +27 -0
  100. package/dist/inspector/partial-graph.host.js +34 -0
  101. package/dist/inspector/serialized-graph.js +128 -0
  102. package/dist/interceptors/consumer.js +54 -0
  103. package/dist/interceptors/context-creator.js +75 -0
  104. package/dist/interfaces/application/context-options.interface.js +31 -0
  105. package/dist/interfaces/application/context.interface.js +0 -0
  106. package/dist/interfaces/application/index.js +3 -0
  107. package/dist/interfaces/context/arguments-host.interface.js +0 -0
  108. package/dist/interfaces/context/context-id-factory.interface.js +0 -0
  109. package/dist/interfaces/context/context.interface.js +0 -0
  110. package/dist/interfaces/context/creator.interface.js +0 -0
  111. package/dist/interfaces/context/execution.interface.js +0 -0
  112. package/dist/interfaces/context/index.js +7 -0
  113. package/dist/interfaces/context/params.interface.js +0 -0
  114. package/dist/interfaces/features/exception-filter.interface.js +0 -0
  115. package/dist/interfaces/features/guards.interface.js +0 -0
  116. package/dist/interfaces/features/index.js +5 -0
  117. package/dist/interfaces/features/interceptor.interface.js +0 -0
  118. package/dist/interfaces/features/pipes.interface.js +0 -0
  119. package/dist/interfaces/helper.interface.js +0 -0
  120. package/dist/interfaces/hooks/before-application-shutdown.interface.js +0 -0
  121. package/dist/interfaces/hooks/index.js +6 -0
  122. package/dist/interfaces/hooks/on-application-bootstrap.interface.js +0 -0
  123. package/dist/interfaces/hooks/on-application-shutdown.interface.js +0 -0
  124. package/dist/interfaces/hooks/on-destroy.interface.js +0 -0
  125. package/dist/interfaces/hooks/on-init.interface.js +0 -0
  126. package/dist/interfaces/index.js +16 -0
  127. package/dist/interfaces/injectable.interface.js +0 -0
  128. package/dist/interfaces/injector/index.js +6 -0
  129. package/dist/interfaces/injector/injector.interface.js +0 -0
  130. package/dist/interfaces/injector/instance-wrapper.interface.js +0 -0
  131. package/dist/interfaces/injector/lazy-module-options.interface.js +0 -0
  132. package/dist/interfaces/injector/module-compiler.interface.js +0 -0
  133. package/dist/interfaces/injector/module-ref.interface.js +0 -0
  134. package/dist/interfaces/inspector/edge.interface.js +0 -0
  135. package/dist/interfaces/inspector/enhancer-metadata-cache-entry.interface.js +0 -0
  136. package/dist/interfaces/inspector/entrypoint.interface.js +0 -0
  137. package/dist/interfaces/inspector/extras.interface.js +0 -0
  138. package/dist/interfaces/inspector/index.js +8 -0
  139. package/dist/interfaces/inspector/node.interface.js +0 -0
  140. package/dist/interfaces/inspector/serialized-graph-json.interface.js +0 -0
  141. package/dist/interfaces/inspector/serialized-graph-metadata.interface.js +0 -0
  142. package/dist/interfaces/modules/definition.interface.js +0 -0
  143. package/dist/interfaces/modules/dynamic-module.interface.js +0 -0
  144. package/dist/interfaces/modules/forward-reference.interface.js +0 -0
  145. package/dist/interfaces/modules/index.js +10 -0
  146. package/dist/interfaces/modules/injection-token.interface.js +0 -0
  147. package/dist/interfaces/modules/introspection-result.interface.js +0 -0
  148. package/dist/interfaces/modules/module-metadata.interface.js +0 -0
  149. package/dist/interfaces/modules/module.interface.js +0 -0
  150. package/dist/interfaces/modules/optional-factory-dependency.interface.js +0 -0
  151. package/dist/interfaces/modules/override.interface.js +0 -0
  152. package/dist/interfaces/modules/provider.interface.js +0 -0
  153. package/dist/interfaces/param-decorator.interface.js +0 -0
  154. package/dist/interfaces/scope.interface.js +0 -0
  155. package/dist/interfaces/services/console.interface.js +0 -0
  156. package/dist/interfaces/services/index.js +4 -0
  157. package/dist/interfaces/services/logger.interface.js +0 -0
  158. package/dist/interfaces/services/reflector.interface.js +0 -0
  159. package/dist/interfaces/set-metadata.interface.js +0 -0
  160. package/dist/interfaces/type.interface.js +0 -0
  161. package/dist/metadata-scanner.js +50 -0
  162. package/dist/pipes/consumer.js +33 -0
  163. package/dist/pipes/context-creator.js +78 -0
  164. package/dist/scanner.js +371 -0
  165. package/dist/services/console.service.js +347 -0
  166. package/dist/services/logger.service.js +276 -0
  167. package/dist/services/reflector.service.js +82 -0
  168. package/dist/storage/handler-metadata.storage.js +42 -0
  169. package/dist/storage/meta-host.storage.js +62 -0
  170. package/package.json +52 -40
  171. package/application/config.d.ts +0 -35
  172. package/application/config.js +0 -85
  173. package/application/context.d.ts +0 -198
  174. package/application/context.js +0 -325
  175. package/application/factory.d.ts +0 -43
  176. package/application/factory.js +0 -147
  177. package/constants.d.ts +0 -44
  178. package/constants.js +0 -51
  179. package/context/context.d.ts +0 -66
  180. package/context/context.js +0 -156
  181. package/context/creator.d.ts +0 -9
  182. package/context/creator.js +0 -32
  183. package/context/execution-host.d.ts +0 -16
  184. package/context/execution-host.js +0 -30
  185. package/context/index.d.ts +0 -4
  186. package/context/index.js +0 -20
  187. package/context/proxy.d.ts +0 -6
  188. package/context/proxy.js +0 -33
  189. package/decorators/apply.decorator.d.ts +0 -10
  190. package/decorators/apply.decorator.js +0 -24
  191. package/decorators/bind.decorator.d.ts +0 -11
  192. package/decorators/bind.decorator.js +0 -20
  193. package/decorators/catch.decorator.d.ts +0 -17
  194. package/decorators/catch.decorator.js +0 -26
  195. package/decorators/create-param.decorator.d.ts +0 -29
  196. package/decorators/create-param.decorator.js +0 -51
  197. package/decorators/dependencies.decorator.d.ts +0 -6
  198. package/decorators/dependencies.decorator.js +0 -17
  199. package/decorators/exception-filters.decorator.d.ts +0 -21
  200. package/decorators/exception-filters.decorator.js +0 -41
  201. package/decorators/global.decorator.d.ts +0 -10
  202. package/decorators/global.decorator.js +0 -19
  203. package/decorators/index.d.ts +0 -15
  204. package/decorators/index.js +0 -31
  205. package/decorators/inject.decorator.d.ts +0 -26
  206. package/decorators/inject.decorator.js +0 -45
  207. package/decorators/injectable.decorator.d.ts +0 -40
  208. package/decorators/injectable.decorator.js +0 -51
  209. package/decorators/module.decorator.d.ts +0 -14
  210. package/decorators/module.decorator.js +0 -38
  211. package/decorators/optional.decorator.d.ts +0 -14
  212. package/decorators/optional.decorator.js +0 -30
  213. package/decorators/set-metadata.decorator.d.ts +0 -18
  214. package/decorators/set-metadata.decorator.js +0 -30
  215. package/decorators/use-guards.decorator.d.ts +0 -21
  216. package/decorators/use-guards.decorator.js +0 -40
  217. package/decorators/use-interceptors.decorator.d.ts +0 -21
  218. package/decorators/use-interceptors.decorator.js +0 -40
  219. package/decorators/use-pipes.decorator.d.ts +0 -21
  220. package/decorators/use-pipes.decorator.js +0 -39
  221. package/discovery/meta-host-collection.d.ts +0 -32
  222. package/discovery/meta-host-collection.js +0 -79
  223. package/discovery/module.d.ts +0 -5
  224. package/discovery/module.js +0 -24
  225. package/discovery/service.d.ts +0 -68
  226. package/discovery/service.js +0 -90
  227. package/errors/exceptions/circular-dependency.exception.d.ts +0 -4
  228. package/errors/exceptions/circular-dependency.exception.js +0 -11
  229. package/errors/exceptions/index.d.ts +0 -8
  230. package/errors/exceptions/index.js +0 -24
  231. package/errors/exceptions/invalid-class-module.exception.d.ts +0 -4
  232. package/errors/exceptions/invalid-class-module.exception.js +0 -11
  233. package/errors/exceptions/invalid-class-scope.exception.d.ts +0 -5
  234. package/errors/exceptions/invalid-class-scope.exception.js +0 -14
  235. package/errors/exceptions/invalid-class.exception.d.ts +0 -4
  236. package/errors/exceptions/invalid-class.exception.js +0 -11
  237. package/errors/exceptions/invalid-exception-filter.exception.d.ts +0 -4
  238. package/errors/exceptions/invalid-exception-filter.exception.js +0 -11
  239. package/errors/exceptions/invalid-module.exception.d.ts +0 -4
  240. package/errors/exceptions/invalid-module.exception.js +0 -11
  241. package/errors/exceptions/runtime.exception.d.ts +0 -4
  242. package/errors/exceptions/runtime.exception.js +0 -12
  243. package/errors/exceptions/undefined-dependency.exception.d.ts +0 -6
  244. package/errors/exceptions/undefined-dependency.exception.js +0 -11
  245. package/errors/exceptions/undefined-forwardref.exception.d.ts +0 -5
  246. package/errors/exceptions/undefined-forwardref.exception.js +0 -11
  247. package/errors/exceptions/undefined-module.exception.d.ts +0 -4
  248. package/errors/exceptions/undefined-module.exception.js +0 -11
  249. package/errors/exceptions/unknown-dependencies.exception.d.ts +0 -16
  250. package/errors/exceptions/unknown-dependencies.exception.js +0 -15
  251. package/errors/exceptions/unknown-element.exception.d.ts +0 -4
  252. package/errors/exceptions/unknown-element.exception.js +0 -12
  253. package/errors/exceptions/unknown-export.exception.d.ts +0 -4
  254. package/errors/exceptions/unknown-export.exception.js +0 -11
  255. package/errors/exceptions/unknown-module.exception.d.ts +0 -4
  256. package/errors/exceptions/unknown-module.exception.js +0 -10
  257. package/errors/messages.d.ts +0 -15
  258. package/errors/messages.js +0 -126
  259. package/exceptions/handler.d.ts +0 -10
  260. package/exceptions/handler.js +0 -34
  261. package/exceptions/index.d.ts +0 -2
  262. package/exceptions/index.js +0 -18
  263. package/exceptions/zone/handler.d.ts +0 -5
  264. package/exceptions/zone/handler.js +0 -15
  265. package/exceptions/zone/index.d.ts +0 -2
  266. package/exceptions/zone/index.js +0 -18
  267. package/exceptions/zone/zone.d.ts +0 -5
  268. package/exceptions/zone/zone.js +0 -32
  269. package/filters/context-creator.d.ts +0 -14
  270. package/filters/context-creator.js +0 -48
  271. package/filters/context.d.ts +0 -12
  272. package/filters/context.js +0 -41
  273. package/filters/filter.d.ts +0 -6
  274. package/filters/filter.js +0 -16
  275. package/filters/index.d.ts +0 -3
  276. package/filters/index.js +0 -19
  277. package/guards/consumer.d.ts +0 -9
  278. package/guards/consumer.js +0 -33
  279. package/guards/context-creator.d.ts +0 -17
  280. package/guards/context-creator.js +0 -69
  281. package/guards/index.d.ts +0 -2
  282. package/guards/index.js +0 -18
  283. package/helpers/color.helper.d.ts +0 -9
  284. package/helpers/color.helper.js +0 -14
  285. package/helpers/context-id-factory.helper.d.ts +0 -2
  286. package/helpers/context-id-factory.helper.js +0 -15
  287. package/helpers/context.helper.d.ts +0 -23
  288. package/helpers/context.helper.js +0 -49
  289. package/helpers/extends-metadata.helper.d.ts +0 -1
  290. package/helpers/extends-metadata.helper.js +0 -9
  291. package/helpers/flatten.helper.d.ts +0 -1
  292. package/helpers/flatten.helper.js +0 -9
  293. package/helpers/messages.helper.d.ts +0 -2
  294. package/helpers/messages.helper.js +0 -7
  295. package/helpers/noop.helper.d.ts +0 -1
  296. package/helpers/noop.helper.js +0 -5
  297. package/helpers/random-string-generator.helper.d.ts +0 -1
  298. package/helpers/random-string-generator.helper.js +0 -6
  299. package/helpers/rethrow.helper.d.ts +0 -1
  300. package/helpers/rethrow.helper.js +0 -7
  301. package/helpers/shared.helper.d.ts +0 -10
  302. package/helpers/shared.helper.js +0 -33
  303. package/helpers/silent.helper.d.ts +0 -10
  304. package/helpers/silent.helper.js +0 -18
  305. package/helpers/transient.helper.d.ts +0 -12
  306. package/helpers/transient.helper.js +0 -26
  307. package/helpers/uuid.helper.d.ts +0 -15
  308. package/helpers/uuid.helper.js +0 -54
  309. package/helpers/validate-each.helper.d.ts +0 -8
  310. package/helpers/validate-each.helper.js +0 -25
  311. package/hooks/before-app-shutdown.hook.d.ts +0 -9
  312. package/hooks/before-app-shutdown.hook.js +0 -45
  313. package/hooks/index.d.ts +0 -5
  314. package/hooks/index.js +0 -21
  315. package/hooks/on-app-bootstrap.hook.d.ts +0 -8
  316. package/hooks/on-app-bootstrap.hook.js +0 -45
  317. package/hooks/on-app-shutdown.hook.d.ts +0 -9
  318. package/hooks/on-app-shutdown.hook.js +0 -46
  319. package/hooks/on-module-destroy.hook.d.ts +0 -8
  320. package/hooks/on-module-destroy.hook.js +0 -45
  321. package/hooks/on-module-init.hook.d.ts +0 -8
  322. package/hooks/on-module-init.hook.js +0 -45
  323. package/index.d.ts +0 -10
  324. package/index.js +0 -32
  325. package/injector/constants.d.ts +0 -2
  326. package/injector/constants.js +0 -7
  327. package/injector/container.d.ts +0 -61
  328. package/injector/container.js +0 -194
  329. package/injector/helpers/class-scope.helper.d.ts +0 -2
  330. package/injector/helpers/class-scope.helper.js +0 -9
  331. package/injector/helpers/classifier.helper.d.ts +0 -4
  332. package/injector/helpers/classifier.helper.js +0 -17
  333. package/injector/helpers/is-durable.helper.d.ts +0 -2
  334. package/injector/helpers/is-durable.helper.js +0 -9
  335. package/injector/index.d.ts +0 -5
  336. package/injector/index.js +0 -20
  337. package/injector/injector.d.ts +0 -87
  338. package/injector/injector.js +0 -452
  339. package/injector/instance/links-host.d.ts +0 -22
  340. package/injector/instance/links-host.js +0 -50
  341. package/injector/instance/loader.d.ts +0 -21
  342. package/injector/instance/loader.js +0 -73
  343. package/injector/instance/resolver.d.ts +0 -16
  344. package/injector/instance/resolver.js +0 -43
  345. package/injector/instance/wrapper.d.ts +0 -90
  346. package/injector/instance/wrapper.js +0 -272
  347. package/injector/internal-core-module/core-providers.d.ts +0 -4
  348. package/injector/internal-core-module/core-providers.js +0 -21
  349. package/injector/internal-core-module/internal-core-module-factory.d.ts +0 -8
  350. package/injector/internal-core-module/internal-core-module-factory.js +0 -47
  351. package/injector/internal-core-module/internal-core-module.d.ts +0 -4
  352. package/injector/internal-core-module/internal-core-module.js +0 -31
  353. package/injector/module/compiler.d.ts +0 -19
  354. package/injector/module/compiler.js +0 -27
  355. package/injector/module/container.d.ts +0 -6
  356. package/injector/module/container.js +0 -24
  357. package/injector/module/lazy/loader.d.ts +0 -21
  358. package/injector/module/lazy/loader.js +0 -49
  359. package/injector/module/lazy/options.d.ts +0 -6
  360. package/injector/module/lazy/options.js +0 -2
  361. package/injector/module/module.d.ts +0 -74
  362. package/injector/module/module.js +0 -383
  363. package/injector/module/ref.d.ts +0 -106
  364. package/injector/module/ref.js +0 -62
  365. package/injector/module/token-factory.d.ts +0 -13
  366. package/injector/module/token-factory.js +0 -71
  367. package/injector/settlement-signal.d.ts +0 -37
  368. package/injector/settlement-signal.js +0 -55
  369. package/inspector/graph-inspector.d.ts +0 -26
  370. package/inspector/graph-inspector.js +0 -163
  371. package/inspector/initialize-on-preview.allowlist.d.ts +0 -6
  372. package/inspector/initialize-on-preview.allowlist.js +0 -13
  373. package/inspector/interfaces/edge.interface.d.ts +0 -28
  374. package/inspector/interfaces/edge.interface.js +0 -2
  375. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +0 -12
  376. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +0 -2
  377. package/inspector/interfaces/entrypoint.interface.d.ts +0 -10
  378. package/inspector/interfaces/entrypoint.interface.js +0 -2
  379. package/inspector/interfaces/extras.interface.d.ts +0 -18
  380. package/inspector/interfaces/extras.interface.js +0 -2
  381. package/inspector/interfaces/node.interface.d.ts +0 -49
  382. package/inspector/interfaces/node.interface.js +0 -2
  383. package/inspector/interfaces/serialized-graph-json.interface.d.ts +0 -14
  384. package/inspector/interfaces/serialized-graph-json.interface.js +0 -2
  385. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +0 -10
  386. package/inspector/interfaces/serialized-graph-metadata.interface.js +0 -2
  387. package/inspector/noop-graph-inspector.d.ts +0 -2
  388. package/inspector/noop-graph-inspector.js +0 -8
  389. package/inspector/partial-graph.host.d.ts +0 -7
  390. package/inspector/partial-graph.host.js +0 -15
  391. package/inspector/serialized-graph.d.ts +0 -52
  392. package/inspector/serialized-graph.js +0 -121
  393. package/interceptors/consumer.d.ts +0 -9
  394. package/interceptors/consumer.js +0 -37
  395. package/interceptors/context-creator.d.ts +0 -17
  396. package/interceptors/context-creator.js +0 -67
  397. package/interceptors/index.d.ts +0 -2
  398. package/interceptors/index.js +0 -18
  399. package/interfaces/abstract.interface.d.ts +0 -3
  400. package/interfaces/abstract.interface.js +0 -2
  401. package/interfaces/application/context-options.interface.d.ts +0 -41
  402. package/interfaces/application/context-options.interface.js +0 -9
  403. package/interfaces/application/context.interface.d.ts +0 -162
  404. package/interfaces/application/context.interface.js +0 -2
  405. package/interfaces/application/index.d.ts +0 -1
  406. package/interfaces/application/index.js +0 -17
  407. package/interfaces/context/arguments-host.interface.d.ts +0 -22
  408. package/interfaces/context/arguments-host.interface.js +0 -2
  409. package/interfaces/context/execution.interface.d.ts +0 -18
  410. package/interfaces/context/execution.interface.js +0 -2
  411. package/interfaces/context/index.d.ts +0 -2
  412. package/interfaces/context/index.js +0 -18
  413. package/interfaces/features/exception-filter.interface.d.ts +0 -21
  414. package/interfaces/features/exception-filter.interface.js +0 -2
  415. package/interfaces/features/guards.interface.d.ts +0 -20
  416. package/interfaces/features/guards.interface.js +0 -2
  417. package/interfaces/features/index.d.ts +0 -4
  418. package/interfaces/features/index.js +0 -20
  419. package/interfaces/features/interceptor.interface.d.ts +0 -30
  420. package/interfaces/features/interceptor.interface.js +0 -2
  421. package/interfaces/features/pipes.interface.d.ts +0 -37
  422. package/interfaces/features/pipes.interface.js +0 -2
  423. package/interfaces/helper.interface.d.ts +0 -3
  424. package/interfaces/helper.interface.js +0 -2
  425. package/interfaces/hooks/before-application-shutdown.interface.d.ts +0 -3
  426. package/interfaces/hooks/before-application-shutdown.interface.js +0 -2
  427. package/interfaces/hooks/index.d.ts +0 -5
  428. package/interfaces/hooks/index.js +0 -21
  429. package/interfaces/hooks/on-application-bootstrap.interface.d.ts +0 -9
  430. package/interfaces/hooks/on-application-bootstrap.interface.js +0 -2
  431. package/interfaces/hooks/on-application-shutdown.interface.d.ts +0 -9
  432. package/interfaces/hooks/on-application-shutdown.interface.js +0 -2
  433. package/interfaces/hooks/on-destroy.interface.d.ts +0 -10
  434. package/interfaces/hooks/on-destroy.interface.js +0 -2
  435. package/interfaces/hooks/on-init.interface.d.ts +0 -8
  436. package/interfaces/hooks/on-init.interface.js +0 -2
  437. package/interfaces/index.d.ts +0 -8
  438. package/interfaces/index.js +0 -24
  439. package/interfaces/injectable.interface.d.ts +0 -1
  440. package/interfaces/injectable.interface.js +0 -2
  441. package/interfaces/modules/configurable/async-options.interface.d.ts +0 -42
  442. package/interfaces/modules/configurable/async-options.interface.js +0 -2
  443. package/interfaces/modules/configurable/cls.interface.d.ts +0 -13
  444. package/interfaces/modules/configurable/cls.interface.js +0 -2
  445. package/interfaces/modules/configurable/host.interface.d.ts +0 -62
  446. package/interfaces/modules/configurable/host.interface.js +0 -2
  447. package/interfaces/modules/configurable/index.d.ts +0 -3
  448. package/interfaces/modules/configurable/index.js +0 -19
  449. package/interfaces/modules/definition.interface.d.ts +0 -4
  450. package/interfaces/modules/definition.interface.js +0 -2
  451. package/interfaces/modules/dynamic-module.interface.d.ts +0 -23
  452. package/interfaces/modules/dynamic-module.interface.js +0 -2
  453. package/interfaces/modules/forward-reference.interface.d.ts +0 -3
  454. package/interfaces/modules/forward-reference.interface.js +0 -2
  455. package/interfaces/modules/index.d.ts +0 -9
  456. package/interfaces/modules/index.js +0 -25
  457. package/interfaces/modules/injection-token.interface.d.ts +0 -5
  458. package/interfaces/modules/injection-token.interface.js +0 -2
  459. package/interfaces/modules/introspection-result.interface.d.ts +0 -10
  460. package/interfaces/modules/introspection-result.interface.js +0 -2
  461. package/interfaces/modules/module-metadata.interface.d.ts +0 -24
  462. package/interfaces/modules/module-metadata.interface.js +0 -2
  463. package/interfaces/modules/module.interface.d.ts +0 -2
  464. package/interfaces/modules/module.interface.js +0 -2
  465. package/interfaces/modules/optional-factory-dependency.interface.d.ts +0 -8
  466. package/interfaces/modules/optional-factory-dependency.interface.js +0 -2
  467. package/interfaces/modules/override.interface.d.ts +0 -5
  468. package/interfaces/modules/override.interface.js +0 -2
  469. package/interfaces/modules/provider.interface.d.ts +0 -142
  470. package/interfaces/modules/provider.interface.js +0 -2
  471. package/interfaces/scope.interface.d.ts +0 -35
  472. package/interfaces/scope.interface.js +0 -23
  473. package/interfaces/type.interface.d.ts +0 -3
  474. package/interfaces/type.interface.js +0 -2
  475. package/metadata-scanner.d.ts +0 -4
  476. package/metadata-scanner.js +0 -34
  477. package/module/configurable-module.builder.d.ts +0 -93
  478. package/module/configurable-module.builder.js +0 -204
  479. package/module/constants.d.ts +0 -4
  480. package/module/constants.js +0 -7
  481. package/module/helpers/generate-options-injection-token.helper.d.ts +0 -1
  482. package/module/helpers/generate-options-injection-token.helper.js +0 -9
  483. package/module/helpers/get-injection-providers.helper.d.ts +0 -8
  484. package/module/helpers/get-injection-providers.helper.js +0 -36
  485. package/module/helpers/index.d.ts +0 -2
  486. package/module/helpers/index.js +0 -18
  487. package/module/index.d.ts +0 -2
  488. package/module/index.js +0 -18
  489. package/pipes/consumer.d.ts +0 -9
  490. package/pipes/consumer.js +0 -15
  491. package/pipes/context-creator.d.ts +0 -18
  492. package/pipes/context-creator.js +0 -70
  493. package/pipes/index.d.ts +0 -2
  494. package/pipes/index.js +0 -18
  495. package/scanner.d.ts +0 -81
  496. package/scanner.js +0 -374
  497. package/services/console.service.d.ts +0 -86
  498. package/services/console.service.js +0 -233
  499. package/services/index.d.ts +0 -1
  500. package/services/index.js +0 -17
  501. package/services/logger.service.d.ts +0 -157
  502. package/services/logger.service.js +0 -269
  503. package/services/reflector.service.d.ts +0 -110
  504. package/services/reflector.service.js +0 -87
  505. package/test/context/creator.spec.d.ts +0 -1
  506. package/test/context/creator.spec.js +0 -149
  507. package/test/context/execution-host.spec.d.ts +0 -1
  508. package/test/context/execution-host.spec.js +0 -31
  509. package/test/context/proxy.spec.d.ts +0 -1
  510. package/test/context/proxy.spec.js +0 -46
  511. package/test/exceptions/handler.spec.d.ts +0 -1
  512. package/test/exceptions/handler.spec.js +0 -90
  513. package/test/exceptions/messages.spec.js +0 -201
  514. package/test/exceptions/zona/handler.spec.d.ts +0 -1
  515. package/test/exceptions/zona/handler.spec.js +0 -51
  516. package/test/exceptions/zona/zone.spec.d.ts +0 -1
  517. package/test/exceptions/zona/zone.spec.js +0 -66
  518. package/test/filters/context-creator.spec.d.ts +0 -2
  519. package/test/filters/context-creator.spec.js +0 -91
  520. package/test/guards/consumer.spec.d.ts +0 -1
  521. package/test/guards/consumer.spec.js +0 -47
  522. package/test/guards/context-creator.spec.d.ts +0 -1
  523. package/test/guards/context-creator.spec.js +0 -138
  524. package/test/helpers/context-id-factory.spec.d.ts +0 -1
  525. package/test/helpers/context-id-factory.spec.js +0 -9
  526. package/test/helpers/shared.spec.d.ts +0 -1
  527. package/test/helpers/shared.spec.js +0 -122
  528. package/test/hooks/before-app-shutdown.hook.spec.d.ts +0 -1
  529. package/test/hooks/before-app-shutdown.hook.spec.js +0 -44
  530. package/test/hooks/on-app-bootstrap.hook.spec.d.ts +0 -1
  531. package/test/hooks/on-app-bootstrap.hook.spec.js +0 -43
  532. package/test/hooks/on-app-shutdown.hook.spec.d.ts +0 -1
  533. package/test/hooks/on-app-shutdown.hook.spec.js +0 -43
  534. package/test/hooks/on-module-destroy.hook.spec.d.ts +0 -1
  535. package/test/hooks/on-module-destroy.hook.spec.js +0 -43
  536. package/test/hooks/on-module-init.hook.spec.d.ts +0 -1
  537. package/test/hooks/on-module-init.hook.spec.js +0 -43
  538. package/test/injector/compiler.spec.d.ts +0 -1
  539. package/test/injector/compiler.spec.js +0 -42
  540. package/test/injector/container.spec.d.ts +0 -1
  541. package/test/injector/container.spec.js +0 -203
  542. package/test/injector/helpers/classifier.spec.d.ts +0 -1
  543. package/test/injector/helpers/classifier.spec.js +0 -102
  544. package/test/injector/injector.spec.d.ts +0 -1
  545. package/test/injector/injector.spec.js +0 -678
  546. package/test/injector/instance/loader.spec.d.ts +0 -1
  547. package/test/injector/instance/loader.spec.js +0 -108
  548. package/test/injector/instance/wrapper.spec.d.ts +0 -1
  549. package/test/injector/instance/wrapper.spec.js +0 -772
  550. package/test/injector/internal-core-module/internal-core-module-factory.spec.d.ts +0 -1
  551. package/test/injector/internal-core-module/internal-core-module-factory.spec.js +0 -27
  552. package/test/injector/module/lazy/loader.spec.d.ts +0 -1
  553. package/test/injector/module/lazy/loader.spec.js +0 -71
  554. package/test/injector/module/module.spec.d.ts +0 -1
  555. package/test/injector/module/module.spec.js +0 -410
  556. package/test/injector/module/token-factory.spec.d.ts +0 -1
  557. package/test/injector/module/token-factory.spec.js +0 -84
  558. package/test/interceptors/consumer.spec.d.ts +0 -1
  559. package/test/interceptors/consumer.spec.js +0 -136
  560. package/test/interceptors/context-creator.spec.d.ts +0 -1
  561. package/test/interceptors/context-creator.spec.js +0 -139
  562. package/test/metadata-scanner.spec.d.ts +0 -1
  563. package/test/metadata-scanner.spec.js +0 -41
  564. package/test/module/configurable-module.builder.spec.d.ts +0 -1
  565. package/test/module/configurable-module.builder.spec.js +0 -102
  566. package/test/module/helpers/get-injection-providers.helper.spec.d.ts +0 -1
  567. package/test/module/helpers/get-injection-providers.helper.spec.js +0 -49
  568. package/test/pipes/consumer.spec.d.ts +0 -1
  569. package/test/pipes/consumer.spec.js +0 -42
  570. package/test/pipes/context-creator.spec.d.ts +0 -1
  571. package/test/pipes/context-creator.spec.js +0 -108
  572. package/test/scanner.spec.d.ts +0 -1
  573. package/test/scanner.spec.js +0 -620
  574. package/test/services/logger.service.spec.d.ts +0 -1
  575. package/test/services/logger.service.spec.js +0 -487
  576. package/test/services/reflector.service.spec.d.ts +0 -1
  577. package/test/services/reflector.service.spec.js +0 -105
  578. package/tsconfig.tsbuildinfo +0 -1
  579. /package/{test/exceptions/messages.spec.d.ts → dist/interfaces/abstract.interface.js} +0 -0
@@ -1 +0,0 @@
1
- import "reflect-metadata";
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("reflect-metadata");
4
- const chai_1 = require("chai");
5
- const container_1 = require("@venok/core/injector/module/container");
6
- const internal_core_module_factory_1 = require("@venok/core/injector/internal-core-module/internal-core-module-factory");
7
- const container_2 = require("@venok/core/injector/container");
8
- const internal_core_module_1 = require("@venok/core/injector/internal-core-module/internal-core-module");
9
- const loader_1 = require("@venok/core/injector/module/lazy/loader");
10
- const serialized_graph_1 = require("@venok/core/inspector/serialized-graph");
11
- const context_1 = require("@venok/core/context/context");
12
- describe("InternalCoreModuleFactory", () => {
13
- it("should return the internal core module definition", () => {
14
- const moduleDefinition = internal_core_module_factory_1.InternalCoreModuleFactory.create(new container_2.VenokContainer(), null, null, null, null);
15
- (0, chai_1.expect)(moduleDefinition.module).to.equal(internal_core_module_1.InternalCoreModule);
16
- const providedInjectables = moduleDefinition.providers.map((item) => item.provide);
17
- (0, chai_1.expect)(providedInjectables).to.deep.equal([
18
- container_2.VenokContainer,
19
- context_1.VenokContextCreator,
20
- container_1.ModulesContainer,
21
- loader_1.LazyModuleLoader,
22
- serialized_graph_1.SerializedGraph,
23
- ]);
24
- const lazyModuleLoaderProvider = moduleDefinition.providers.find((item) => item?.provide === loader_1.LazyModuleLoader);
25
- (0, chai_1.expect)(lazyModuleLoaderProvider.useFactory()).to.be.instanceOf(loader_1.LazyModuleLoader);
26
- });
27
- });
@@ -1 +0,0 @@
1
- import "reflect-metadata";
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- require("reflect-metadata");
10
- const chai_1 = require("chai");
11
- const loader_1 = require("@venok/core/injector/module/lazy/loader");
12
- const scanner_1 = require("@venok/core/scanner");
13
- const loader_2 = require("@venok/core/injector/instance/loader");
14
- const graph_inspector_1 = require("@venok/core/inspector/graph-inspector");
15
- const metadata_scanner_1 = require("@venok/core/metadata-scanner");
16
- const injector_1 = require("@venok/core/injector/injector");
17
- const container_1 = require("@venok/core/injector/container");
18
- const module_decorator_1 = require("@venok/core/decorators/module.decorator");
19
- describe("LazyModuleLoader", () => {
20
- let lazyModuleLoader;
21
- let dependenciesScanner;
22
- let instanceLoader;
23
- let modulesContainer;
24
- class NoopLogger {
25
- log() { }
26
- error() { }
27
- warn() { }
28
- }
29
- beforeEach(() => {
30
- const venokContainer = new container_1.VenokContainer();
31
- const graphInspector = new graph_inspector_1.GraphInspector(venokContainer);
32
- dependenciesScanner = new scanner_1.DependenciesScanner(venokContainer, new metadata_scanner_1.MetadataScanner(), graphInspector);
33
- const injector = new injector_1.Injector();
34
- instanceLoader = new loader_2.InstanceLoader(venokContainer, injector, graphInspector, new NoopLogger());
35
- modulesContainer = venokContainer.getModules();
36
- lazyModuleLoader = new loader_1.LazyModuleLoader(dependenciesScanner, instanceLoader, venokContainer["moduleCompiler"], modulesContainer);
37
- });
38
- describe("load", () => {
39
- const bProvider = { provide: "B", useValue: "B" };
40
- let ModuleB = class ModuleB {
41
- };
42
- ModuleB = __decorate([
43
- (0, module_decorator_1.Module)({ providers: [bProvider], exports: [bProvider] })
44
- ], ModuleB);
45
- let ModuleA = class ModuleA {
46
- };
47
- ModuleA = __decorate([
48
- (0, module_decorator_1.Module)({ imports: [ModuleB] })
49
- ], ModuleA);
50
- // describe("when module was not loaded yet", () => {
51
- // it("should load it and return a module reference", async () => {
52
- // const moduleRef = await lazyModuleLoader.load(() => ModuleA);
53
- // console.log(moduleRef, ModuleRef);
54
- // expect(moduleRef).to.be.instanceOf(ModuleRef);
55
- // expect(moduleRef.get(bProvider.provide, { strict: false })).to.equal(bProvider.useValue);
56
- // });
57
- // });
58
- describe("when module was loaded already", () => {
59
- let ModuleC = class ModuleC {
60
- };
61
- ModuleC = __decorate([
62
- (0, module_decorator_1.Module)({})
63
- ], ModuleC);
64
- it("should return an existing module reference", async () => {
65
- const moduleRef = await lazyModuleLoader.load(() => ModuleC);
66
- const moduleRef2 = await lazyModuleLoader.load(() => ModuleC);
67
- (0, chai_1.expect)(moduleRef).to.equal(moduleRef2);
68
- });
69
- });
70
- });
71
- });
@@ -1 +0,0 @@
1
- import "reflect-metadata";
@@ -1,410 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- require("reflect-metadata");
33
- const chai_1 = require("chai");
34
- const sinon = __importStar(require("sinon"));
35
- const module_decorator_1 = require("@venok/core/decorators/module.decorator");
36
- const module_1 = require("@venok/core/injector/module/module");
37
- const container_1 = require("@venok/core/injector/container");
38
- const injectable_decorator_1 = require("@venok/core/decorators/injectable.decorator");
39
- const interfaces_1 = require("@venok/core/interfaces");
40
- const wrapper_1 = require("@venok/core/injector/instance/wrapper");
41
- const exceptions_1 = require("@venok/core/errors/exceptions");
42
- describe("Module", () => {
43
- let module;
44
- let container;
45
- let TestModule = class TestModule {
46
- };
47
- TestModule = __decorate([
48
- (0, module_decorator_1.Module)({})
49
- ], TestModule);
50
- let TestProvider = class TestProvider {
51
- };
52
- TestProvider = __decorate([
53
- (0, injectable_decorator_1.Injectable)()
54
- ], TestProvider);
55
- beforeEach(() => {
56
- container = new container_1.VenokContainer();
57
- module = new module_1.Module(TestModule, container);
58
- });
59
- it("should add injectable", () => {
60
- const collection = new Map();
61
- const setSpy = sinon.spy(collection, "set");
62
- module._injectables = collection;
63
- module.addInjectable(TestProvider, "interceptor", TestModule);
64
- (0, chai_1.expect)(setSpy.calledWith(TestProvider, new wrapper_1.InstanceWrapper({
65
- host: module,
66
- name: "TestProvider",
67
- token: TestProvider,
68
- scope: undefined,
69
- metatype: TestProvider,
70
- instance: null,
71
- durable: undefined,
72
- isResolved: false,
73
- subtype: "interceptor",
74
- }))).to.be.true;
75
- });
76
- describe("when injectable is custom provided", () => {
77
- it("should call `addCustomProvider`", () => {
78
- const addCustomProviderSpy = sinon.spy(module, "addCustomProvider");
79
- module.addInjectable({ provide: "test" }, "guard");
80
- (0, chai_1.expect)(addCustomProviderSpy.called).to.be.true;
81
- });
82
- });
83
- it("should add provider", () => {
84
- const collection = new Map();
85
- const setSpy = sinon.spy(collection, "set");
86
- module._providers = collection;
87
- module.addProvider(TestProvider);
88
- (0, chai_1.expect)(setSpy.calledWith(TestProvider, new wrapper_1.InstanceWrapper({
89
- host: module,
90
- name: "TestProvider",
91
- token: TestProvider,
92
- scope: undefined,
93
- metatype: TestProvider,
94
- durable: undefined,
95
- instance: null,
96
- isResolved: false,
97
- }))).to.be.true;
98
- });
99
- it('should call "addCustomProvider" when "provide" property exists', () => {
100
- const addCustomProvider = sinon.spy();
101
- module.addCustomProvider = addCustomProvider;
102
- const provider = { provide: "test", useValue: "test" };
103
- module.addProvider(provider);
104
- (0, chai_1.expect)(addCustomProvider.called).to.be.true;
105
- });
106
- it('should call "addCustomClass" when "useClass" property exists', () => {
107
- const addCustomClass = sinon.spy();
108
- module.addCustomClass = addCustomClass;
109
- const provider = { provide: "test", useClass: () => null };
110
- module.addCustomProvider(provider, new Map());
111
- (0, chai_1.expect)(addCustomClass.called).to.be.true;
112
- });
113
- it('should call "addCustomValue" when "useValue" property exists', () => {
114
- const addCustomValue = sinon.spy();
115
- module.addCustomValue = addCustomValue;
116
- const provider = { provide: "test", useValue: () => null };
117
- module.addCustomProvider(provider, new Map());
118
- (0, chai_1.expect)(addCustomValue.called).to.be.true;
119
- });
120
- it('should call "addCustomValue" when "useValue" property exists but its value is `undefined`', () => {
121
- const addCustomValue = sinon.spy();
122
- module.addCustomValue = addCustomValue;
123
- const provider = { provide: "test", useValue: undefined };
124
- module.addCustomProvider(provider, new Map());
125
- (0, chai_1.expect)(addCustomValue.called).to.be.true;
126
- });
127
- it('should call "addCustomFactory" when "useFactory" property exists', () => {
128
- const addCustomFactory = sinon.spy();
129
- module.addCustomFactory = addCustomFactory;
130
- const provider = { provide: "test", useFactory: () => null };
131
- module.addCustomProvider(provider, new Map());
132
- (0, chai_1.expect)(addCustomFactory.called).to.be.true;
133
- });
134
- it('should call "addCustomUseExisting" when "useExisting" property exists', () => {
135
- const addCustomUseExisting = sinon.spy();
136
- module.addCustomUseExisting = addCustomUseExisting;
137
- const provider = { provide: "test", useExisting: () => null };
138
- module.addCustomUseExisting(provider, new Map());
139
- (0, chai_1.expect)(addCustomUseExisting.called).to.be.true;
140
- });
141
- describe("addCustomClass", () => {
142
- const type = { name: "TypeTest" };
143
- const provider = { provide: type, useClass: type, durable: true };
144
- let setSpy;
145
- beforeEach(() => {
146
- const collection = new Map();
147
- setSpy = sinon.spy(collection, "set");
148
- module._providers = collection;
149
- });
150
- it("should store provider", () => {
151
- module.addCustomClass(provider, module._providers);
152
- (0, chai_1.expect)(setSpy.calledWith(provider.provide, new wrapper_1.InstanceWrapper({
153
- host: module,
154
- token: type,
155
- name: provider.provide.name,
156
- scope: undefined,
157
- metatype: type,
158
- durable: true,
159
- instance: null,
160
- isResolved: false,
161
- subtype: undefined,
162
- }))).to.be.true;
163
- });
164
- });
165
- describe("addCustomValue", () => {
166
- let setSpy;
167
- const value = () => ({});
168
- const provider = { provide: value, useValue: value };
169
- beforeEach(() => {
170
- const collection = new Map();
171
- setSpy = sinon.spy(collection, "set");
172
- module._providers = collection;
173
- });
174
- it("should store provider", () => {
175
- module.addCustomValue(provider, module._providers);
176
- (0, chai_1.expect)(setSpy.calledWith(provider.provide, new wrapper_1.InstanceWrapper({
177
- host: module,
178
- token: provider.provide,
179
- name: provider.provide.name,
180
- scope: interfaces_1.Scope.DEFAULT,
181
- metatype: null,
182
- instance: value,
183
- isResolved: true,
184
- async: false,
185
- subtype: undefined,
186
- }))).to.be.true;
187
- });
188
- });
189
- describe("addCustomFactory", () => {
190
- const type = { name: "TypeTest" };
191
- const inject = [1, 2, 3];
192
- const provider = { provide: type, useFactory: type, inject, durable: true };
193
- let setSpy;
194
- beforeEach(() => {
195
- const collection = new Map();
196
- setSpy = sinon.spy(collection, "set");
197
- module._providers = collection;
198
- });
199
- it("should store provider", () => {
200
- module.addCustomFactory(provider, module._providers);
201
- (0, chai_1.expect)(setSpy.calledWith(provider.provide, new wrapper_1.InstanceWrapper({
202
- host: module,
203
- token: provider.provide,
204
- name: provider.provide.name,
205
- scope: undefined,
206
- metatype: type,
207
- durable: true,
208
- instance: null,
209
- isResolved: false,
210
- inject: inject,
211
- subtype: undefined,
212
- }))).to.be.true;
213
- });
214
- });
215
- describe("addCustomUseExisting", () => {
216
- const type = { name: "TypeTest" };
217
- const provider = { provide: type, useExisting: type };
218
- let setSpy;
219
- beforeEach(() => {
220
- const collection = new Map();
221
- setSpy = sinon.spy(collection, "set");
222
- module._providers = collection;
223
- });
224
- it("should store provider", () => {
225
- module.addCustomUseExisting(provider, module._providers);
226
- const factoryFn = module._providers.get(provider.provide).metatype;
227
- const token = provider.provide;
228
- (0, chai_1.expect)(setSpy.calledWith(token, new wrapper_1.InstanceWrapper({
229
- host: module,
230
- token,
231
- name: provider.provide.name,
232
- metatype: factoryFn,
233
- instance: null,
234
- inject: [provider.useExisting],
235
- isResolved: false,
236
- isAlias: true,
237
- subtype: undefined,
238
- }))).to.be.true;
239
- (0, chai_1.expect)(factoryFn(provider.useExisting)).to.be.eql(type);
240
- });
241
- });
242
- describe("when get instance", () => {
243
- describe("when metatype does not exists in providers collection", () => {
244
- beforeEach(() => {
245
- sinon.stub(module._providers, "has").returns(false);
246
- });
247
- it("should throw RuntimeException", () => {
248
- (0, chai_1.expect)(() => module.instance).to.throws(exceptions_1.RuntimeException);
249
- });
250
- });
251
- describe("when metatype exists in providers collection", () => {
252
- it("should return null", () => {
253
- (0, chai_1.expect)(module.instance).to.be.eql(null);
254
- });
255
- });
256
- });
257
- describe("when exported provider is custom provided", () => {
258
- beforeEach(() => {
259
- sinon.stub(module, "validateExportedProvider").callsFake((o) => o);
260
- });
261
- it("should call `addCustomExportedProvider`", () => {
262
- const addCustomExportedProviderSpy = sinon.spy(module, "addCustomExportedProvider");
263
- module.addExportedProvider({ provide: "test" });
264
- (0, chai_1.expect)(addCustomExportedProviderSpy.called).to.be.true;
265
- });
266
- it("should support symbols", () => {
267
- const addCustomExportedProviderSpy = sinon.spy(module, "addCustomExportedProvider");
268
- const symb = Symbol("test");
269
- module.addExportedProvider({ provide: symb });
270
- (0, chai_1.expect)(addCustomExportedProviderSpy.called).to.be.true;
271
- (0, chai_1.expect)(module._exports.has(symb)).to.be.true;
272
- });
273
- });
274
- describe("replace", () => {
275
- describe("when provider", () => {
276
- it("should call `mergeWith`", () => {
277
- const wrapper = {
278
- mergeWith: sinon.spy(),
279
- };
280
- sinon.stub(module, "hasProvider").callsFake(() => true);
281
- sinon.stub(module.providers, "get").callsFake(() => wrapper);
282
- module.replace(null, { isProvider: true });
283
- (0, chai_1.expect)(wrapper.mergeWith.called).to.be.true;
284
- });
285
- });
286
- describe("when guard", () => {
287
- it("should call `mergeWith`", () => {
288
- const wrapper = {
289
- mergeWith: sinon.spy(),
290
- isProvider: true,
291
- };
292
- sinon.stub(module, "hasInjectable").callsFake(() => true);
293
- sinon.stub(module.injectables, "get").callsFake(() => wrapper);
294
- module.replace(null, {});
295
- (0, chai_1.expect)(wrapper.mergeWith.called).to.be.true;
296
- });
297
- });
298
- });
299
- describe("imports", () => {
300
- it("should return relatedModules", () => {
301
- const test = ["test"];
302
- module._imports = test;
303
- (0, chai_1.expect)(module.imports).to.be.eql(test);
304
- });
305
- });
306
- describe("injectables", () => {
307
- it("should return injectables", () => {
308
- const test = ["test"];
309
- module._injectables = test;
310
- (0, chai_1.expect)(module.injectables).to.be.eql(test);
311
- });
312
- });
313
- describe("exports", () => {
314
- it("should return exports", () => {
315
- const test = ["test"];
316
- module._exports = test;
317
- (0, chai_1.expect)(module.exports).to.be.eql(test);
318
- });
319
- });
320
- describe("providers", () => {
321
- it("should return providers", () => {
322
- const test = ["test"];
323
- module._providers = test;
324
- (0, chai_1.expect)(module.providers).to.be.eql(test);
325
- });
326
- });
327
- describe("createModuleReferenceType", () => {
328
- let moduleRef;
329
- beforeEach(() => {
330
- const Class = module.createModuleReferenceType();
331
- moduleRef = new Class();
332
- });
333
- it('should return metatype with "get" method', () => {
334
- (0, chai_1.expect)(!!moduleRef.get).to.be.true;
335
- });
336
- describe("get", () => {
337
- it("should throw exception if not exists", () => {
338
- (0, chai_1.expect)(() => moduleRef.get("fail")).to.throws(exceptions_1.UnknownElementException);
339
- });
340
- });
341
- });
342
- describe("validateExportedProvider", () => {
343
- const token = "token";
344
- describe("when unit exists in provider collection", () => {
345
- it("should behave as identity", () => {
346
- module._providers = new Map([[token, true]]);
347
- (0, chai_1.expect)(module.validateExportedProvider(token)).to.be.eql(token);
348
- });
349
- });
350
- describe("when unit exists in related modules collection", () => {
351
- it("should behave as identity", () => {
352
- class Random {
353
- }
354
- module._imports = new Set([new module_1.Module(Random, new container_1.VenokContainer())]);
355
- (0, chai_1.expect)(module.validateExportedProvider(Random)).to.be.eql(Random);
356
- });
357
- });
358
- describe("when unit does not exist in both provider and related modules collections", () => {
359
- it("should throw UnknownExportException", () => {
360
- (0, chai_1.expect)(() => module.validateExportedProvider(token)).to.throws(exceptions_1.UnknownExportException);
361
- });
362
- });
363
- });
364
- describe("hasProvider", () => {
365
- describe("when module has provider", () => {
366
- it("should return true", () => {
367
- const token = "test";
368
- module.providers.set(token, new wrapper_1.InstanceWrapper());
369
- (0, chai_1.expect)(module.hasProvider(token)).to.be.true;
370
- });
371
- });
372
- describe("otherwise", () => {
373
- it("should return false", () => {
374
- (0, chai_1.expect)(module.hasProvider("_")).to.be.false;
375
- });
376
- });
377
- });
378
- describe("hasInjectable", () => {
379
- describe("when module has injectable", () => {
380
- it("should return true", () => {
381
- const token = "test";
382
- module.injectables.set(token, new wrapper_1.InstanceWrapper());
383
- (0, chai_1.expect)(module.hasInjectable(token)).to.be.true;
384
- });
385
- });
386
- describe("otherwise", () => {
387
- it("should return false", () => {
388
- (0, chai_1.expect)(module.hasInjectable("_")).to.be.false;
389
- });
390
- });
391
- });
392
- describe('getter "id"', () => {
393
- it("should return module id", () => {
394
- (0, chai_1.expect)(module.id).to.be.equal(module["_id"]);
395
- });
396
- });
397
- describe("getProviderByKey", () => {
398
- describe("when does not exist", () => {
399
- it("should return undefined", () => {
400
- (0, chai_1.expect)(module.getProviderByKey("test")).to.be.undefined;
401
- });
402
- });
403
- describe("otherwise", () => {
404
- it("should return instance wrapper", () => {
405
- module.addProvider(TestProvider);
406
- (0, chai_1.expect)(module.getProviderByKey(TestProvider)).to.not.be.undefined;
407
- });
408
- });
409
- });
410
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,84 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chai_1 = require("chai");
7
- const sinon_1 = __importDefault(require("sinon"));
8
- const token_factory_1 = require("@venok/core/injector/module/token-factory");
9
- describe("ModuleTokenFactory", () => {
10
- const moduleId = "constId";
11
- let factory;
12
- beforeEach(() => {
13
- factory = new token_factory_1.TokenFactory();
14
- sinon_1.default.stub(factory, "getModuleId").returns(moduleId);
15
- });
16
- describe("create", () => {
17
- class Module {
18
- }
19
- it("should return expected token", () => {
20
- const type = Module;
21
- const token1 = factory.create(type, undefined);
22
- const token2 = factory.create(type, undefined);
23
- (0, chai_1.expect)(token1).to.be.deep.eq(token2);
24
- });
25
- it("should include dynamic metadata", () => {
26
- const type = Module;
27
- const token1 = factory.create(type, {
28
- providers: [{}],
29
- });
30
- const token2 = factory.create(type, {
31
- providers: [{}],
32
- });
33
- (0, chai_1.expect)(token1).to.be.deep.eq(token2);
34
- });
35
- });
36
- describe("getModuleName", () => {
37
- it("should map module metatype to name", () => {
38
- const metatype = () => { };
39
- (0, chai_1.expect)(factory.getModuleName(metatype)).to.be.eql(metatype.name);
40
- });
41
- });
42
- describe("getStringifiedOpaqueToken", () => {
43
- describe("when metadata exists", () => {
44
- it("should return hash", () => {
45
- const metadata = { providers: ["", {}] };
46
- (0, chai_1.expect)(factory.getStringifiedOpaqueToken(metadata)).to.be.eql(JSON.stringify(metadata));
47
- });
48
- it("should return hash with class", () => {
49
- class Provider {
50
- }
51
- const metadata = { providers: [Provider], exports: [Provider] };
52
- (0, chai_1.expect)(factory.getStringifiedOpaqueToken(metadata)).to.be.eql('{"providers":["Provider"],"exports":["Provider"]}');
53
- });
54
- it("should return hash with value provider with non-class function", () => {
55
- const provider = {
56
- provide: "ProvideValue",
57
- useValue: function Provider() { },
58
- };
59
- const metadata = { providers: [provider] };
60
- (0, chai_1.expect)(factory.getStringifiedOpaqueToken(metadata)).to.be.eql(`{"providers":[{"provide":"ProvideValue","useValue":"${provider.useValue.toString()}"}]}`);
61
- });
62
- it("should serialize symbols in a dynamic metadata object", () => {
63
- const metadata = {
64
- providers: [
65
- {
66
- provide: Symbol("a"),
67
- useValue: "a",
68
- },
69
- {
70
- provide: Symbol("b"),
71
- useValue: "b",
72
- },
73
- ],
74
- };
75
- (0, chai_1.expect)(factory.getStringifiedOpaqueToken(metadata)).to.be.eql('{"providers":[{"provide":"Symbol(a)","useValue":"a"},{"provide":"Symbol(b)","useValue":"b"}]}');
76
- });
77
- });
78
- describe("when metadata does not exist", () => {
79
- it("should return empty string", () => {
80
- (0, chai_1.expect)(factory.getStringifiedOpaqueToken(undefined)).to.be.eql("");
81
- });
82
- });
83
- });
84
- });
@@ -1 +0,0 @@
1
- export {};