@venok/core 1.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 (400) hide show
  1. package/application/config.d.ts +35 -0
  2. package/application/config.js +85 -0
  3. package/application/context.d.ts +198 -0
  4. package/application/context.js +325 -0
  5. package/application/factory.d.ts +43 -0
  6. package/application/factory.js +147 -0
  7. package/constants.d.ts +46 -0
  8. package/constants.js +53 -0
  9. package/context/creator.d.ts +9 -0
  10. package/context/creator.js +32 -0
  11. package/context/execution-host.d.ts +16 -0
  12. package/context/execution-host.js +30 -0
  13. package/context/external/creator.d.ts +63 -0
  14. package/context/external/creator.js +159 -0
  15. package/context/external/proxy.d.ts +5 -0
  16. package/context/external/proxy.js +19 -0
  17. package/decorators/apply.decorator.d.ts +10 -0
  18. package/decorators/apply.decorator.js +24 -0
  19. package/decorators/bind.decorator.d.ts +11 -0
  20. package/decorators/bind.decorator.js +20 -0
  21. package/decorators/catch.decorator.d.ts +17 -0
  22. package/decorators/catch.decorator.js +26 -0
  23. package/decorators/create-param.decorator.d.ts +29 -0
  24. package/decorators/create-param.decorator.js +51 -0
  25. package/decorators/dependencies.decorator.d.ts +6 -0
  26. package/decorators/dependencies.decorator.js +17 -0
  27. package/decorators/exception-filters.decorator.d.ts +21 -0
  28. package/decorators/exception-filters.decorator.js +41 -0
  29. package/decorators/global.decorator.d.ts +10 -0
  30. package/decorators/global.decorator.js +19 -0
  31. package/decorators/index.d.ts +15 -0
  32. package/decorators/index.js +31 -0
  33. package/decorators/inject.decorator.d.ts +26 -0
  34. package/decorators/inject.decorator.js +45 -0
  35. package/decorators/injectable.decorator.d.ts +40 -0
  36. package/decorators/injectable.decorator.js +51 -0
  37. package/decorators/module.decorator.d.ts +14 -0
  38. package/decorators/module.decorator.js +38 -0
  39. package/decorators/optional.decorator.d.ts +14 -0
  40. package/decorators/optional.decorator.js +30 -0
  41. package/decorators/set-metadata.decorator.d.ts +18 -0
  42. package/decorators/set-metadata.decorator.js +30 -0
  43. package/decorators/use-guards.decorator.d.ts +21 -0
  44. package/decorators/use-guards.decorator.js +40 -0
  45. package/decorators/use-interceptors.decorator.d.ts +21 -0
  46. package/decorators/use-interceptors.decorator.js +40 -0
  47. package/decorators/use-pipes.decorator.d.ts +21 -0
  48. package/decorators/use-pipes.decorator.js +39 -0
  49. package/discovery/meta-host-collection.d.ts +32 -0
  50. package/discovery/meta-host-collection.js +79 -0
  51. package/discovery/module.d.ts +5 -0
  52. package/discovery/module.js +24 -0
  53. package/discovery/service.d.ts +68 -0
  54. package/discovery/service.js +90 -0
  55. package/errors/exceptions/circular-dependency.exception.d.ts +4 -0
  56. package/errors/exceptions/circular-dependency.exception.js +11 -0
  57. package/errors/exceptions/index.d.ts +8 -0
  58. package/errors/exceptions/index.js +24 -0
  59. package/errors/exceptions/invalid-class-module.exception.d.ts +4 -0
  60. package/errors/exceptions/invalid-class-module.exception.js +11 -0
  61. package/errors/exceptions/invalid-class-scope.exception.d.ts +5 -0
  62. package/errors/exceptions/invalid-class-scope.exception.js +14 -0
  63. package/errors/exceptions/invalid-class.exception.d.ts +4 -0
  64. package/errors/exceptions/invalid-class.exception.js +11 -0
  65. package/errors/exceptions/invalid-exception-filter.exception.d.ts +4 -0
  66. package/errors/exceptions/invalid-exception-filter.exception.js +11 -0
  67. package/errors/exceptions/invalid-module.exception.d.ts +4 -0
  68. package/errors/exceptions/invalid-module.exception.js +11 -0
  69. package/errors/exceptions/runtime.exception.d.ts +4 -0
  70. package/errors/exceptions/runtime.exception.js +12 -0
  71. package/errors/exceptions/undefined-dependency.exception.d.ts +6 -0
  72. package/errors/exceptions/undefined-dependency.exception.js +11 -0
  73. package/errors/exceptions/undefined-forwardref.exception.d.ts +5 -0
  74. package/errors/exceptions/undefined-forwardref.exception.js +11 -0
  75. package/errors/exceptions/undefined-module.exception.d.ts +4 -0
  76. package/errors/exceptions/undefined-module.exception.js +11 -0
  77. package/errors/exceptions/unknown-dependencies.exception.d.ts +16 -0
  78. package/errors/exceptions/unknown-dependencies.exception.js +15 -0
  79. package/errors/exceptions/unknown-element.exception.d.ts +4 -0
  80. package/errors/exceptions/unknown-element.exception.js +12 -0
  81. package/errors/exceptions/unknown-export.exception.d.ts +4 -0
  82. package/errors/exceptions/unknown-export.exception.js +11 -0
  83. package/errors/exceptions/unknown-module.exception.d.ts +4 -0
  84. package/errors/exceptions/unknown-module.exception.js +10 -0
  85. package/errors/messages.d.ts +15 -0
  86. package/errors/messages.js +126 -0
  87. package/exceptions/external/filter-context.d.ts +10 -0
  88. package/exceptions/external/filter-context.js +37 -0
  89. package/exceptions/external/filter.d.ts +5 -0
  90. package/exceptions/external/filter.js +16 -0
  91. package/exceptions/external/handler.d.ts +9 -0
  92. package/exceptions/external/handler.js +31 -0
  93. package/exceptions/filter-context.d.ts +14 -0
  94. package/exceptions/filter-context.js +55 -0
  95. package/exceptions/select-exception-filter-metadata.d.ts +2 -0
  96. package/exceptions/select-exception-filter-metadata.js +6 -0
  97. package/exceptions/zone/handler.d.ts +5 -0
  98. package/exceptions/zone/handler.js +15 -0
  99. package/exceptions/zone/zone.d.ts +5 -0
  100. package/exceptions/zone/zone.js +32 -0
  101. package/guards/consumer.d.ts +9 -0
  102. package/guards/consumer.js +33 -0
  103. package/guards/context-creator.d.ts +17 -0
  104. package/guards/context-creator.js +69 -0
  105. package/guards/index.d.ts +2 -0
  106. package/guards/index.js +18 -0
  107. package/helpers/color.helper.d.ts +9 -0
  108. package/helpers/color.helper.js +14 -0
  109. package/helpers/context-id-factory.helper.d.ts +2 -0
  110. package/helpers/context-id-factory.helper.js +15 -0
  111. package/helpers/context.helper.d.ts +23 -0
  112. package/helpers/context.helper.js +49 -0
  113. package/helpers/extends-metadata.helper.d.ts +1 -0
  114. package/helpers/extends-metadata.helper.js +9 -0
  115. package/helpers/flatten.helper.d.ts +1 -0
  116. package/helpers/flatten.helper.js +9 -0
  117. package/helpers/messages.helper.d.ts +2 -0
  118. package/helpers/messages.helper.js +7 -0
  119. package/helpers/noop.helper.d.ts +1 -0
  120. package/helpers/noop.helper.js +5 -0
  121. package/helpers/random-string-generator.helper.d.ts +1 -0
  122. package/helpers/random-string-generator.helper.js +6 -0
  123. package/helpers/rethrow.helper.d.ts +1 -0
  124. package/helpers/rethrow.helper.js +7 -0
  125. package/helpers/shared.helper.d.ts +10 -0
  126. package/helpers/shared.helper.js +33 -0
  127. package/helpers/silent.helper.d.ts +10 -0
  128. package/helpers/silent.helper.js +18 -0
  129. package/helpers/transient.helper.d.ts +12 -0
  130. package/helpers/transient.helper.js +26 -0
  131. package/helpers/uuid.helper.d.ts +15 -0
  132. package/helpers/uuid.helper.js +54 -0
  133. package/helpers/validate-each.helper.d.ts +8 -0
  134. package/helpers/validate-each.helper.js +25 -0
  135. package/hooks/before-app-shutdown.hook.d.ts +9 -0
  136. package/hooks/before-app-shutdown.hook.js +45 -0
  137. package/hooks/index.d.ts +5 -0
  138. package/hooks/index.js +21 -0
  139. package/hooks/on-app-bootstrap.hook.d.ts +8 -0
  140. package/hooks/on-app-bootstrap.hook.js +45 -0
  141. package/hooks/on-app-shutdown.hook.d.ts +9 -0
  142. package/hooks/on-app-shutdown.hook.js +46 -0
  143. package/hooks/on-module-destroy.hook.d.ts +8 -0
  144. package/hooks/on-module-destroy.hook.js +45 -0
  145. package/hooks/on-module-init.hook.d.ts +8 -0
  146. package/hooks/on-module-init.hook.js +45 -0
  147. package/index.d.ts +10 -0
  148. package/index.js +32 -0
  149. package/injector/constants.d.ts +2 -0
  150. package/injector/constants.js +7 -0
  151. package/injector/container.d.ts +61 -0
  152. package/injector/container.js +194 -0
  153. package/injector/helpers/class-scope.helper.d.ts +2 -0
  154. package/injector/helpers/class-scope.helper.js +9 -0
  155. package/injector/helpers/classifier.helper.d.ts +4 -0
  156. package/injector/helpers/classifier.helper.js +17 -0
  157. package/injector/helpers/is-durable.helper.d.ts +2 -0
  158. package/injector/helpers/is-durable.helper.js +9 -0
  159. package/injector/index.d.ts +5 -0
  160. package/injector/index.js +20 -0
  161. package/injector/injector.d.ts +87 -0
  162. package/injector/injector.js +452 -0
  163. package/injector/instance/links-host.d.ts +22 -0
  164. package/injector/instance/links-host.js +50 -0
  165. package/injector/instance/loader.d.ts +21 -0
  166. package/injector/instance/loader.js +73 -0
  167. package/injector/instance/resolver.d.ts +16 -0
  168. package/injector/instance/resolver.js +43 -0
  169. package/injector/instance/wrapper.d.ts +90 -0
  170. package/injector/instance/wrapper.js +272 -0
  171. package/injector/internal-core-module/core-providers.d.ts +4 -0
  172. package/injector/internal-core-module/core-providers.js +21 -0
  173. package/injector/internal-core-module/internal-core-module-factory.d.ts +8 -0
  174. package/injector/internal-core-module/internal-core-module-factory.js +42 -0
  175. package/injector/internal-core-module/internal-core-module.d.ts +4 -0
  176. package/injector/internal-core-module/internal-core-module.js +31 -0
  177. package/injector/module/compiler.d.ts +19 -0
  178. package/injector/module/compiler.js +27 -0
  179. package/injector/module/container.d.ts +6 -0
  180. package/injector/module/container.js +24 -0
  181. package/injector/module/lazy/loader.d.ts +21 -0
  182. package/injector/module/lazy/loader.js +49 -0
  183. package/injector/module/lazy/options.d.ts +6 -0
  184. package/injector/module/lazy/options.js +2 -0
  185. package/injector/module/module.d.ts +74 -0
  186. package/injector/module/module.js +383 -0
  187. package/injector/module/ref.d.ts +106 -0
  188. package/injector/module/ref.js +62 -0
  189. package/injector/module/token-factory.d.ts +13 -0
  190. package/injector/module/token-factory.js +71 -0
  191. package/injector/settlement-signal.d.ts +37 -0
  192. package/injector/settlement-signal.js +55 -0
  193. package/inspector/graph-inspector.d.ts +26 -0
  194. package/inspector/graph-inspector.js +163 -0
  195. package/inspector/initialize-on-preview.allowlist.d.ts +6 -0
  196. package/inspector/initialize-on-preview.allowlist.js +13 -0
  197. package/inspector/interfaces/edge.interface.d.ts +28 -0
  198. package/inspector/interfaces/edge.interface.js +2 -0
  199. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +12 -0
  200. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +2 -0
  201. package/inspector/interfaces/entrypoint.interface.d.ts +10 -0
  202. package/inspector/interfaces/entrypoint.interface.js +2 -0
  203. package/inspector/interfaces/extras.interface.d.ts +18 -0
  204. package/inspector/interfaces/extras.interface.js +2 -0
  205. package/inspector/interfaces/node.interface.d.ts +49 -0
  206. package/inspector/interfaces/node.interface.js +2 -0
  207. package/inspector/interfaces/serialized-graph-json.interface.d.ts +14 -0
  208. package/inspector/interfaces/serialized-graph-json.interface.js +2 -0
  209. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +10 -0
  210. package/inspector/interfaces/serialized-graph-metadata.interface.js +2 -0
  211. package/inspector/noop-graph-inspector.d.ts +2 -0
  212. package/inspector/noop-graph-inspector.js +8 -0
  213. package/inspector/partial-graph.host.d.ts +7 -0
  214. package/inspector/partial-graph.host.js +15 -0
  215. package/inspector/serialized-graph.d.ts +52 -0
  216. package/inspector/serialized-graph.js +121 -0
  217. package/interceptors/consumer.d.ts +9 -0
  218. package/interceptors/consumer.js +37 -0
  219. package/interceptors/context-creator.d.ts +17 -0
  220. package/interceptors/context-creator.js +67 -0
  221. package/interceptors/index.d.ts +2 -0
  222. package/interceptors/index.js +18 -0
  223. package/interfaces/abstract.interface.d.ts +3 -0
  224. package/interfaces/abstract.interface.js +2 -0
  225. package/interfaces/application/context-options.interface.d.ts +41 -0
  226. package/interfaces/application/context-options.interface.js +9 -0
  227. package/interfaces/application/context.interface.d.ts +162 -0
  228. package/interfaces/application/context.interface.js +2 -0
  229. package/interfaces/application/index.d.ts +1 -0
  230. package/interfaces/application/index.js +17 -0
  231. package/interfaces/context/arguments-host.interface.d.ts +22 -0
  232. package/interfaces/context/arguments-host.interface.js +2 -0
  233. package/interfaces/context/execution.interface.d.ts +18 -0
  234. package/interfaces/context/execution.interface.js +2 -0
  235. package/interfaces/features/exception-filter.interface.d.ts +21 -0
  236. package/interfaces/features/exception-filter.interface.js +2 -0
  237. package/interfaces/features/guards.interface.d.ts +20 -0
  238. package/interfaces/features/guards.interface.js +2 -0
  239. package/interfaces/features/interceptor.interface.d.ts +30 -0
  240. package/interfaces/features/interceptor.interface.js +2 -0
  241. package/interfaces/features/pipes.interface.d.ts +37 -0
  242. package/interfaces/features/pipes.interface.js +2 -0
  243. package/interfaces/helper.interface.d.ts +3 -0
  244. package/interfaces/helper.interface.js +2 -0
  245. package/interfaces/hooks/before-application-shutdown.interface.d.ts +3 -0
  246. package/interfaces/hooks/before-application-shutdown.interface.js +2 -0
  247. package/interfaces/hooks/index.d.ts +5 -0
  248. package/interfaces/hooks/index.js +21 -0
  249. package/interfaces/hooks/on-application-bootstrap.interface.d.ts +9 -0
  250. package/interfaces/hooks/on-application-bootstrap.interface.js +2 -0
  251. package/interfaces/hooks/on-application-shutdown.interface.d.ts +9 -0
  252. package/interfaces/hooks/on-application-shutdown.interface.js +2 -0
  253. package/interfaces/hooks/on-destroy.interface.d.ts +10 -0
  254. package/interfaces/hooks/on-destroy.interface.js +2 -0
  255. package/interfaces/hooks/on-init.interface.d.ts +8 -0
  256. package/interfaces/hooks/on-init.interface.js +2 -0
  257. package/interfaces/index.d.ts +6 -0
  258. package/interfaces/index.js +22 -0
  259. package/interfaces/injectable.interface.d.ts +1 -0
  260. package/interfaces/injectable.interface.js +2 -0
  261. package/interfaces/modules/configurable/async-options.interface.d.ts +42 -0
  262. package/interfaces/modules/configurable/async-options.interface.js +2 -0
  263. package/interfaces/modules/configurable/cls.interface.d.ts +13 -0
  264. package/interfaces/modules/configurable/cls.interface.js +2 -0
  265. package/interfaces/modules/configurable/host.interface.d.ts +62 -0
  266. package/interfaces/modules/configurable/host.interface.js +2 -0
  267. package/interfaces/modules/configurable/index.d.ts +3 -0
  268. package/interfaces/modules/configurable/index.js +19 -0
  269. package/interfaces/modules/definition.interface.d.ts +4 -0
  270. package/interfaces/modules/definition.interface.js +2 -0
  271. package/interfaces/modules/dynamic-module.interface.d.ts +23 -0
  272. package/interfaces/modules/dynamic-module.interface.js +2 -0
  273. package/interfaces/modules/forward-reference.interface.d.ts +3 -0
  274. package/interfaces/modules/forward-reference.interface.js +2 -0
  275. package/interfaces/modules/index.d.ts +9 -0
  276. package/interfaces/modules/index.js +25 -0
  277. package/interfaces/modules/injection-token.interface.d.ts +5 -0
  278. package/interfaces/modules/injection-token.interface.js +2 -0
  279. package/interfaces/modules/introspection-result.interface.d.ts +10 -0
  280. package/interfaces/modules/introspection-result.interface.js +2 -0
  281. package/interfaces/modules/module-metadata.interface.d.ts +24 -0
  282. package/interfaces/modules/module-metadata.interface.js +2 -0
  283. package/interfaces/modules/module.interface.d.ts +2 -0
  284. package/interfaces/modules/module.interface.js +2 -0
  285. package/interfaces/modules/optional-factory-dependency.interface.d.ts +8 -0
  286. package/interfaces/modules/optional-factory-dependency.interface.js +2 -0
  287. package/interfaces/modules/override.interface.d.ts +5 -0
  288. package/interfaces/modules/override.interface.js +2 -0
  289. package/interfaces/modules/provider.interface.d.ts +142 -0
  290. package/interfaces/modules/provider.interface.js +2 -0
  291. package/interfaces/scope.interface.d.ts +35 -0
  292. package/interfaces/scope.interface.js +23 -0
  293. package/interfaces/type.interface.d.ts +3 -0
  294. package/interfaces/type.interface.js +2 -0
  295. package/metadata-scanner.d.ts +4 -0
  296. package/metadata-scanner.js +34 -0
  297. package/module/configurable-module.builder.d.ts +93 -0
  298. package/module/configurable-module.builder.js +204 -0
  299. package/module/constants.d.ts +4 -0
  300. package/module/constants.js +7 -0
  301. package/module/helpers/generate-options-injection-token.helper.d.ts +1 -0
  302. package/module/helpers/generate-options-injection-token.helper.js +9 -0
  303. package/module/helpers/get-injection-providers.helper.d.ts +8 -0
  304. package/module/helpers/get-injection-providers.helper.js +36 -0
  305. package/module/helpers/index.d.ts +2 -0
  306. package/module/helpers/index.js +18 -0
  307. package/module/index.d.ts +2 -0
  308. package/module/index.js +18 -0
  309. package/package.json +35 -0
  310. package/pipes/consumer.d.ts +9 -0
  311. package/pipes/consumer.js +15 -0
  312. package/pipes/context-creator.d.ts +18 -0
  313. package/pipes/context-creator.js +70 -0
  314. package/pipes/index.d.ts +2 -0
  315. package/pipes/index.js +18 -0
  316. package/scanner.d.ts +81 -0
  317. package/scanner.js +374 -0
  318. package/services/console.service.d.ts +86 -0
  319. package/services/console.service.js +233 -0
  320. package/services/index.d.ts +1 -0
  321. package/services/index.js +17 -0
  322. package/services/logger.service.d.ts +157 -0
  323. package/services/logger.service.js +269 -0
  324. package/services/reflector.service.d.ts +110 -0
  325. package/services/reflector.service.js +87 -0
  326. package/test/context/execution-host.spec.d.ts +1 -0
  327. package/test/context/execution-host.spec.js +31 -0
  328. package/test/context/external/creator.spec.d.ts +1 -0
  329. package/test/context/external/creator.spec.js +149 -0
  330. package/test/context/external/proxy.spec.d.ts +1 -0
  331. package/test/context/external/proxy.spec.js +45 -0
  332. package/test/exceptions/external/handler.spec.d.ts +1 -0
  333. package/test/exceptions/external/handler.spec.js +89 -0
  334. package/test/exceptions/filter-context.spec.d.ts +2 -0
  335. package/test/exceptions/filter-context.spec.js +91 -0
  336. package/test/exceptions/messages.spec.d.ts +0 -0
  337. package/test/exceptions/messages.spec.js +201 -0
  338. package/test/exceptions/zona/handler.spec.d.ts +1 -0
  339. package/test/exceptions/zona/handler.spec.js +51 -0
  340. package/test/exceptions/zona/zone.spec.d.ts +1 -0
  341. package/test/exceptions/zona/zone.spec.js +66 -0
  342. package/test/guards/consumer.spec.d.ts +1 -0
  343. package/test/guards/consumer.spec.js +47 -0
  344. package/test/guards/context-creator.spec.d.ts +1 -0
  345. package/test/guards/context-creator.spec.js +138 -0
  346. package/test/helpers/context-id-factory.spec.d.ts +1 -0
  347. package/test/helpers/context-id-factory.spec.js +9 -0
  348. package/test/helpers/shared.spec.d.ts +1 -0
  349. package/test/helpers/shared.spec.js +122 -0
  350. package/test/hooks/before-app-shutdown.hook.spec.d.ts +1 -0
  351. package/test/hooks/before-app-shutdown.hook.spec.js +44 -0
  352. package/test/hooks/on-app-bootstrap.hook.spec.d.ts +1 -0
  353. package/test/hooks/on-app-bootstrap.hook.spec.js +43 -0
  354. package/test/hooks/on-app-shutdown.hook.spec.d.ts +1 -0
  355. package/test/hooks/on-app-shutdown.hook.spec.js +43 -0
  356. package/test/hooks/on-module-destroy.hook.spec.d.ts +1 -0
  357. package/test/hooks/on-module-destroy.hook.spec.js +43 -0
  358. package/test/hooks/on-module-init.hook.spec.d.ts +1 -0
  359. package/test/hooks/on-module-init.hook.spec.js +43 -0
  360. package/test/injector/compiler.spec.d.ts +1 -0
  361. package/test/injector/compiler.spec.js +42 -0
  362. package/test/injector/container.spec.d.ts +1 -0
  363. package/test/injector/container.spec.js +203 -0
  364. package/test/injector/helpers/classifier.spec.d.ts +1 -0
  365. package/test/injector/helpers/classifier.spec.js +102 -0
  366. package/test/injector/injector.spec.d.ts +1 -0
  367. package/test/injector/injector.spec.js +678 -0
  368. package/test/injector/instance/loader.spec.d.ts +1 -0
  369. package/test/injector/instance/loader.spec.js +108 -0
  370. package/test/injector/instance/wrapper.spec.d.ts +1 -0
  371. package/test/injector/instance/wrapper.spec.js +772 -0
  372. package/test/injector/internal-core-module/internal-core-module-factory.spec.d.ts +1 -0
  373. package/test/injector/internal-core-module/internal-core-module-factory.spec.js +27 -0
  374. package/test/injector/module/lazy/loader.spec.d.ts +1 -0
  375. package/test/injector/module/lazy/loader.spec.js +71 -0
  376. package/test/injector/module/module.spec.d.ts +1 -0
  377. package/test/injector/module/module.spec.js +410 -0
  378. package/test/injector/module/token-factory.spec.d.ts +1 -0
  379. package/test/injector/module/token-factory.spec.js +84 -0
  380. package/test/interceptors/consumer.spec.d.ts +1 -0
  381. package/test/interceptors/consumer.spec.js +136 -0
  382. package/test/interceptors/context-creator.spec.d.ts +1 -0
  383. package/test/interceptors/context-creator.spec.js +139 -0
  384. package/test/metadata-scanner.spec.d.ts +1 -0
  385. package/test/metadata-scanner.spec.js +41 -0
  386. package/test/module/configurable-module.builder.spec.d.ts +1 -0
  387. package/test/module/configurable-module.builder.spec.js +102 -0
  388. package/test/module/helpers/get-injection-providers.helper.spec.d.ts +1 -0
  389. package/test/module/helpers/get-injection-providers.helper.spec.js +49 -0
  390. package/test/pipes/consumer.spec.d.ts +1 -0
  391. package/test/pipes/consumer.spec.js +42 -0
  392. package/test/pipes/context-creator.spec.d.ts +1 -0
  393. package/test/pipes/context-creator.spec.js +108 -0
  394. package/test/scanner.spec.d.ts +1 -0
  395. package/test/scanner.spec.js +620 -0
  396. package/test/services/logger.service.spec.d.ts +1 -0
  397. package/test/services/logger.service.spec.js +487 -0
  398. package/test/services/reflector.service.spec.d.ts +1 -0
  399. package/test/services/reflector.service.spec.js +105 -0
  400. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,138 @@
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 guards_1 = require("@venok/core/guards");
9
+ const config_1 = require("@venok/core/application/config");
10
+ const wrapper_1 = require("@venok/core/injector/instance/wrapper");
11
+ class Guard {
12
+ }
13
+ describe("GuardsContextCreator", () => {
14
+ let guardsContextCreator;
15
+ let applicationConfig;
16
+ let guards;
17
+ let container;
18
+ let getSpy;
19
+ class Guard1 {
20
+ }
21
+ class Guard2 {
22
+ }
23
+ beforeEach(() => {
24
+ guards = [
25
+ {
26
+ name: "Guard1",
27
+ token: Guard1,
28
+ metatype: Guard1,
29
+ instance: {
30
+ canActivate: () => true,
31
+ },
32
+ getInstanceByContextId: () => guards[0],
33
+ },
34
+ {
35
+ name: "Guard2",
36
+ token: Guard2,
37
+ metatype: Guard2,
38
+ instance: {
39
+ canActivate: () => true,
40
+ },
41
+ getInstanceByContextId: () => guards[1],
42
+ },
43
+ {},
44
+ undefined,
45
+ ];
46
+ getSpy = sinon_1.default.stub().returns({
47
+ injectables: new Map([
48
+ [Guard1, guards[0]],
49
+ [Guard2, guards[1]],
50
+ ]),
51
+ });
52
+ container = {
53
+ getModules: () => ({
54
+ get: getSpy,
55
+ }),
56
+ };
57
+ applicationConfig = new config_1.ApplicationConfig();
58
+ guardsContextCreator = new guards_1.GuardsContextCreator(container, applicationConfig);
59
+ });
60
+ describe("createConcreteContext", () => {
61
+ describe("when `moduleContext` is nil", () => {
62
+ it("should return empty array", () => {
63
+ const result = guardsContextCreator.createConcreteContext(guards);
64
+ (0, chai_1.expect)(result).to.be.empty;
65
+ });
66
+ });
67
+ describe("when `moduleContext` is defined", () => {
68
+ beforeEach(() => {
69
+ guardsContextCreator["moduleContext"] = "test";
70
+ });
71
+ it("should filter metatypes", () => {
72
+ const guardTypeRefs = [guards[0].metatype, guards[1].instance];
73
+ (0, chai_1.expect)(guardsContextCreator.createConcreteContext(guardTypeRefs)).to.have.length(2);
74
+ });
75
+ });
76
+ });
77
+ describe("getGuardInstance", () => {
78
+ describe("when param is an object", () => {
79
+ it("should return instance", () => {
80
+ const instance = { canActivate: () => null };
81
+ (0, chai_1.expect)(guardsContextCreator.getGuardInstance(instance)).to.be.eql(instance);
82
+ });
83
+ });
84
+ describe("when param is a constructor", () => {
85
+ it("should pick instance from container", () => {
86
+ const wrapper = {
87
+ instance: "test",
88
+ getInstanceByContextId: () => wrapper,
89
+ };
90
+ sinon_1.default.stub(guardsContextCreator, "getInstanceByMetatype").callsFake(() => wrapper);
91
+ (0, chai_1.expect)(guardsContextCreator.getGuardInstance(Guard)).to.be.eql(wrapper.instance);
92
+ });
93
+ it("should return null", () => {
94
+ sinon_1.default.stub(guardsContextCreator, "getInstanceByMetatype").callsFake(() => null);
95
+ (0, chai_1.expect)(guardsContextCreator.getGuardInstance(Guard)).to.be.eql(null);
96
+ });
97
+ });
98
+ });
99
+ describe("getInstanceByMetatype", () => {
100
+ describe('when "moduleContext" is nil', () => {
101
+ it("should return undefined", () => {
102
+ guardsContextCreator.moduleContext = undefined;
103
+ (0, chai_1.expect)(guardsContextCreator.getInstanceByMetatype(null)).to.be.undefined;
104
+ });
105
+ });
106
+ describe('when "moduleContext" is not nil', () => {
107
+ beforeEach(() => {
108
+ guardsContextCreator.moduleContext = "test";
109
+ });
110
+ describe("but module does not exist", () => {
111
+ it("should return undefined", () => {
112
+ (0, chai_1.expect)(guardsContextCreator.getInstanceByMetatype(class RandomModule {
113
+ })).to.be.undefined;
114
+ });
115
+ });
116
+ });
117
+ });
118
+ describe("getGlobalMetadata", () => {
119
+ describe("when contextId is static and inquirerId is nil", () => {
120
+ it("should return global guards", () => {
121
+ const expectedResult = applicationConfig.getGlobalGuards();
122
+ (0, chai_1.expect)(guardsContextCreator.getGlobalMetadata()).to.be.equal(expectedResult);
123
+ });
124
+ });
125
+ describe("otherwise", () => {
126
+ it("should merge static global with request/transient scoped guards", () => {
127
+ const globalGuards = ["test"];
128
+ const instanceWrapper = new wrapper_1.InstanceWrapper();
129
+ const instance = "request-scoped";
130
+ const scopedGuardWrappers = [instanceWrapper];
131
+ sinon_1.default.stub(applicationConfig, "getGlobalGuards").callsFake(() => globalGuards);
132
+ sinon_1.default.stub(applicationConfig, "getGlobalRequestGuards").callsFake(() => scopedGuardWrappers);
133
+ sinon_1.default.stub(instanceWrapper, "getInstanceByContextId").callsFake(() => ({ instance }));
134
+ (0, chai_1.expect)(guardsContextCreator.getGlobalMetadata({ id: 3 })).to.contains(instance, ...globalGuards);
135
+ });
136
+ });
137
+ });
138
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const context_id_factory_helper_1 = require("@venok/core/helpers/context-id-factory.helper");
5
+ describe("createContextId", () => {
6
+ it('should return an object with random "id" property', () => {
7
+ (0, chai_1.expect)((0, context_id_factory_helper_1.createContextId)()).to.have.property("id");
8
+ });
9
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
5
+ function Foo(a) {
6
+ // @ts-ignore
7
+ this.a = 1;
8
+ }
9
+ describe("Shared utils", () => {
10
+ describe("isUndefined", () => {
11
+ it("should return true when obj is undefined", () => {
12
+ (0, chai_1.expect)((0, shared_helper_1.isUndefined)(undefined)).to.be.true;
13
+ });
14
+ it("should return false when object is not undefined", () => {
15
+ (0, chai_1.expect)((0, shared_helper_1.isUndefined)({})).to.be.false;
16
+ });
17
+ });
18
+ describe("isFunction", () => {
19
+ it("should return true when obj is function", () => {
20
+ (0, chai_1.expect)((0, shared_helper_1.isFunction)(() => ({}))).to.be.true;
21
+ });
22
+ it("should return false when object is not function", () => {
23
+ (0, chai_1.expect)((0, shared_helper_1.isFunction)(null)).to.be.false;
24
+ (0, chai_1.expect)((0, shared_helper_1.isFunction)(undefined)).to.be.false;
25
+ });
26
+ });
27
+ describe("isObject", () => {
28
+ it("should return true when obj is object", () => {
29
+ (0, chai_1.expect)((0, shared_helper_1.isObject)({})).to.be.true;
30
+ });
31
+ it("should return false when object is not object", () => {
32
+ (0, chai_1.expect)((0, shared_helper_1.isObject)(3)).to.be.false;
33
+ (0, chai_1.expect)((0, shared_helper_1.isObject)(null)).to.be.false;
34
+ (0, chai_1.expect)((0, shared_helper_1.isObject)(undefined)).to.be.false;
35
+ });
36
+ });
37
+ describe("isPlainObject", () => {
38
+ it("should return true when obj is plain object", () => {
39
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)({})).to.be.true;
40
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)({ prop: true })).to.be.true;
41
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)({
42
+ constructor: Foo,
43
+ })).to.be.true;
44
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(Object.create(null))).to.be.true;
45
+ });
46
+ it("should return false when object is not object", () => {
47
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(3)).to.be.false;
48
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(null)).to.be.false;
49
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(undefined)).to.be.false;
50
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)([1, 2, 3])).to.be.false;
51
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(new Date())).to.be.false;
52
+ // @ts-ignore
53
+ (0, chai_1.expect)((0, shared_helper_1.isPlainObject)(new Foo(1))).to.be.false;
54
+ });
55
+ });
56
+ describe("isString", () => {
57
+ it("should return true when val is a string", () => {
58
+ (0, chai_1.expect)((0, shared_helper_1.isString)("true")).to.be.true;
59
+ });
60
+ it("should return false when val is not a string", () => {
61
+ (0, chai_1.expect)((0, shared_helper_1.isString)(new String("fine"))).to.be.false;
62
+ (0, chai_1.expect)((0, shared_helper_1.isString)(false)).to.be.false;
63
+ (0, chai_1.expect)((0, shared_helper_1.isString)(null)).to.be.false;
64
+ (0, chai_1.expect)((0, shared_helper_1.isString)(undefined)).to.be.false;
65
+ });
66
+ });
67
+ describe("isSymbol", () => {
68
+ it("should return true when val is a Symbol", () => {
69
+ (0, chai_1.expect)((0, shared_helper_1.isSymbol)(Symbol())).to.be.true;
70
+ });
71
+ it("should return false when val is not a symbol", () => {
72
+ (0, chai_1.expect)((0, shared_helper_1.isSymbol)("Symbol()")).to.be.false;
73
+ (0, chai_1.expect)((0, shared_helper_1.isSymbol)(false)).to.be.false;
74
+ (0, chai_1.expect)((0, shared_helper_1.isSymbol)(null)).to.be.false;
75
+ (0, chai_1.expect)((0, shared_helper_1.isSymbol)(undefined)).to.be.false;
76
+ });
77
+ });
78
+ describe("isNumber", () => {
79
+ it("should return true when val is a number or NaN", () => {
80
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(1)).to.be.true;
81
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(1.23)).to.be.true; // with decimals
82
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(123e-5)).to.be.true; // scientific (exponent) notation
83
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(0o1)).to.be.true; // octal notation
84
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(0b1)).to.be.true; // binary notation
85
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(0x1)).to.be.true; // hexadecimal notation
86
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(NaN)).to.be.true;
87
+ });
88
+ it("should return false when val is not a number", () => {
89
+ // expect(isNumber(1n)).to.be.false; // big int (available on ES2020)
90
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)("1")).to.be.false; // string
91
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(undefined)).to.be.false; // nullish
92
+ (0, chai_1.expect)((0, shared_helper_1.isNumber)(null)).to.be.false; // nullish
93
+ });
94
+ });
95
+ describe("isConstructor", () => {
96
+ it("should return true when string is equal to constructor", () => {
97
+ (0, chai_1.expect)((0, shared_helper_1.isConstructor)("constructor")).to.be.true;
98
+ });
99
+ it("should return false when string is not equal to constructor", () => {
100
+ (0, chai_1.expect)((0, shared_helper_1.isConstructor)("nope")).to.be.false;
101
+ });
102
+ });
103
+ describe("isNull", () => {
104
+ it("should return true when obj is undefined or null", () => {
105
+ (0, chai_1.expect)((0, shared_helper_1.isNull)(undefined)).to.be.true;
106
+ (0, chai_1.expect)((0, shared_helper_1.isNull)(null)).to.be.true;
107
+ });
108
+ it("should return false when object is not undefined and null", () => {
109
+ (0, chai_1.expect)((0, shared_helper_1.isNull)("3")).to.be.false;
110
+ });
111
+ });
112
+ describe("isEmpty", () => {
113
+ it("should return true when array is empty or not exists", () => {
114
+ (0, chai_1.expect)((0, shared_helper_1.isEmpty)([])).to.be.true;
115
+ (0, chai_1.expect)((0, shared_helper_1.isEmpty)(null)).to.be.true;
116
+ (0, chai_1.expect)((0, shared_helper_1.isEmpty)(undefined)).to.be.true;
117
+ });
118
+ it("should return false when array is not empty", () => {
119
+ (0, chai_1.expect)((0, shared_helper_1.isEmpty)([1, 2])).to.be.false;
120
+ });
121
+ });
122
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
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 module_1 = require("@venok/core/injector/module/module");
9
+ const container_1 = require("@venok/core/injector/container");
10
+ const hooks_1 = require("@venok/core/hooks");
11
+ class SampleProvider {
12
+ beforeApplicationShutdown(signal) { }
13
+ }
14
+ class SampleModule {
15
+ beforeApplicationShutdown(signal) { }
16
+ }
17
+ class WithoutHookProvider {
18
+ }
19
+ describe("BeforeAppShutdown", () => {
20
+ let moduleRef;
21
+ let sampleProvider;
22
+ beforeEach(() => {
23
+ sampleProvider = new SampleProvider();
24
+ moduleRef = new module_1.Module(SampleModule, new container_1.VenokContainer());
25
+ const moduleWrapperRef = moduleRef.getProviderByKey(SampleModule);
26
+ moduleWrapperRef.instance = new SampleModule();
27
+ moduleRef.addProvider({
28
+ provide: SampleProvider,
29
+ useValue: sampleProvider,
30
+ });
31
+ moduleRef.addProvider({
32
+ provide: WithoutHookProvider,
33
+ useValue: new WithoutHookProvider(),
34
+ });
35
+ });
36
+ describe("callBeforeAppShutdownHook", () => {
37
+ it('should call "beforeApplicationShutdown" hook for the entire module', async () => {
38
+ const signal = "SIGTERM";
39
+ const hookSpy = sinon_1.default.spy(sampleProvider, "beforeApplicationShutdown");
40
+ await (0, hooks_1.callBeforeAppShutdownHook)(moduleRef, signal);
41
+ (0, chai_1.expect)(hookSpy.calledWith(signal)).to.be.true;
42
+ });
43
+ });
44
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
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 container_1 = require("@venok/core/injector/container");
9
+ const module_1 = require("@venok/core/injector/module/module");
10
+ const hooks_1 = require("@venok/core/hooks");
11
+ class SampleProvider {
12
+ onApplicationBootstrap() { }
13
+ }
14
+ class SampleModule {
15
+ onApplicationBootstrap() { }
16
+ }
17
+ class WithoutHookProvider {
18
+ }
19
+ describe("OnApplicationBootstrap", () => {
20
+ let moduleRef;
21
+ let sampleProvider;
22
+ beforeEach(() => {
23
+ sampleProvider = new SampleProvider();
24
+ moduleRef = new module_1.Module(SampleModule, new container_1.VenokContainer());
25
+ const moduleWrapperRef = moduleRef.getProviderByKey(SampleModule);
26
+ moduleWrapperRef.instance = new SampleModule();
27
+ moduleRef.addProvider({
28
+ provide: SampleProvider,
29
+ useValue: sampleProvider,
30
+ });
31
+ moduleRef.addProvider({
32
+ provide: WithoutHookProvider,
33
+ useValue: new WithoutHookProvider(),
34
+ });
35
+ });
36
+ describe("callModuleBootstrapHook", () => {
37
+ it('should call "onApplicationBootstrap" hook for the entire module', async () => {
38
+ const hookSpy = sinon_1.default.spy(sampleProvider, "onApplicationBootstrap");
39
+ await (0, hooks_1.callModuleBootstrapHook)(moduleRef);
40
+ (0, chai_1.expect)(hookSpy.called).to.be.true;
41
+ });
42
+ });
43
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
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 container_1 = require("@venok/core/injector/container");
9
+ const module_1 = require("@venok/core/injector/module/module");
10
+ const hooks_1 = require("@venok/core/hooks");
11
+ class SampleProvider {
12
+ onApplicationShutdown() { }
13
+ }
14
+ class SampleModule {
15
+ onApplicationShutdown() { }
16
+ }
17
+ class WithoutHookProvider {
18
+ }
19
+ describe("OnApplicationShutdown", () => {
20
+ let moduleRef;
21
+ let sampleProvider;
22
+ beforeEach(() => {
23
+ sampleProvider = new SampleProvider();
24
+ moduleRef = new module_1.Module(SampleModule, new container_1.VenokContainer());
25
+ const moduleWrapperRef = moduleRef.getProviderByKey(SampleModule);
26
+ moduleWrapperRef.instance = new SampleModule();
27
+ moduleRef.addProvider({
28
+ provide: SampleProvider,
29
+ useValue: sampleProvider,
30
+ });
31
+ moduleRef.addProvider({
32
+ provide: WithoutHookProvider,
33
+ useValue: new WithoutHookProvider(),
34
+ });
35
+ });
36
+ describe("callAppShutdownHook", () => {
37
+ it('should call "onApplicationShutdown" hook for the entire module', async () => {
38
+ const hookSpy = sinon_1.default.spy(sampleProvider, "onApplicationShutdown");
39
+ await (0, hooks_1.callAppShutdownHook)(moduleRef);
40
+ (0, chai_1.expect)(hookSpy.called).to.be.true;
41
+ });
42
+ });
43
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
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 container_1 = require("@venok/core/injector/container");
9
+ const module_1 = require("@venok/core/injector/module/module");
10
+ const hooks_1 = require("@venok/core/hooks");
11
+ class SampleProvider {
12
+ onModuleDestroy() { }
13
+ }
14
+ class SampleModule {
15
+ onModuleDestroy() { }
16
+ }
17
+ class WithoutHookProvider {
18
+ }
19
+ describe("OnModuleDestroy", () => {
20
+ let moduleRef;
21
+ let sampleProvider;
22
+ beforeEach(() => {
23
+ sampleProvider = new SampleProvider();
24
+ moduleRef = new module_1.Module(SampleModule, new container_1.VenokContainer());
25
+ const moduleWrapperRef = moduleRef.getProviderByKey(SampleModule);
26
+ moduleWrapperRef.instance = new SampleModule();
27
+ moduleRef.addProvider({
28
+ provide: SampleProvider,
29
+ useValue: sampleProvider,
30
+ });
31
+ moduleRef.addProvider({
32
+ provide: WithoutHookProvider,
33
+ useValue: new WithoutHookProvider(),
34
+ });
35
+ });
36
+ describe("callModuleDestroyHook", () => {
37
+ it('should call "onModuleDestroy" hook for the entire module', async () => {
38
+ const hookSpy = sinon_1.default.spy(sampleProvider, "onModuleDestroy");
39
+ await (0, hooks_1.callModuleDestroyHook)(moduleRef);
40
+ (0, chai_1.expect)(hookSpy.called).to.be.true;
41
+ });
42
+ });
43
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
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 container_1 = require("@venok/core/injector/container");
9
+ const module_1 = require("@venok/core/injector/module/module");
10
+ const hooks_1 = require("@venok/core/hooks");
11
+ class SampleProvider {
12
+ onModuleInit() { }
13
+ }
14
+ class SampleModule {
15
+ onModuleInit() { }
16
+ }
17
+ class WithoutHookProvider {
18
+ }
19
+ describe("OnModuleInit", () => {
20
+ let moduleRef;
21
+ let sampleProvider;
22
+ beforeEach(() => {
23
+ sampleProvider = new SampleProvider();
24
+ moduleRef = new module_1.Module(SampleModule, new container_1.VenokContainer());
25
+ const moduleWrapperRef = moduleRef.getProviderByKey(SampleModule);
26
+ moduleWrapperRef.instance = new SampleModule();
27
+ moduleRef.addProvider({
28
+ provide: SampleProvider,
29
+ useValue: sampleProvider,
30
+ });
31
+ moduleRef.addProvider({
32
+ provide: WithoutHookProvider,
33
+ useValue: new WithoutHookProvider(),
34
+ });
35
+ });
36
+ describe("callModuleInitHook", () => {
37
+ it('should call "onModuleInit" hook for the entire module', async () => {
38
+ const hookSpy = sinon_1.default.spy(sampleProvider, "onModuleInit");
39
+ await (0, hooks_1.callModuleInitHook)(moduleRef);
40
+ (0, chai_1.expect)(hookSpy.called).to.be.true;
41
+ });
42
+ });
43
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const compiler_1 = require("@venok/core/injector/module/compiler");
5
+ describe("ModuleCompiler", () => {
6
+ let compiler;
7
+ beforeEach(() => {
8
+ compiler = new compiler_1.ModuleCompiler();
9
+ });
10
+ describe("extractMetadata", () => {
11
+ describe("when module is a dynamic module", () => {
12
+ it('should return object with "type" and "dynamicMetadata" property', async () => {
13
+ const obj = { module: "test", providers: [] };
14
+ const { module, ...dynamicMetadata } = obj;
15
+ (0, chai_1.expect)(compiler.extractMetadata(obj)).to.be.deep.equal({
16
+ type: module,
17
+ dynamicMetadata,
18
+ });
19
+ });
20
+ });
21
+ describe("when module is a not dynamic module", () => {
22
+ it('should return object with "type" property', async () => {
23
+ const type = "test";
24
+ (0, chai_1.expect)(compiler.extractMetadata(type)).to.be.deep.equal({
25
+ type,
26
+ });
27
+ });
28
+ });
29
+ });
30
+ describe("isDynamicModule", () => {
31
+ describe("when module is a dynamic module", () => {
32
+ it("should return true", () => {
33
+ (0, chai_1.expect)(compiler.isDynamicModule({ module: true })).to.be.true;
34
+ });
35
+ });
36
+ describe("when module is a dynamic module", () => {
37
+ it("should return false", () => {
38
+ (0, chai_1.expect)(compiler.isDynamicModule({ x: true })).to.be.false;
39
+ });
40
+ });
41
+ });
42
+ });
@@ -0,0 +1 @@
1
+ import "reflect-metadata";