@tsed/di 8.11.0 → 8.11.2-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/lib/esm/common/constants/constants.js +0 -1
  2. package/lib/esm/common/decorators/autoInjectable.js +0 -1
  3. package/lib/esm/common/decorators/configuration.js +0 -1
  4. package/lib/esm/common/decorators/constant.js +0 -1
  5. package/lib/esm/common/decorators/controller.js +0 -1
  6. package/lib/esm/common/decorators/inject.js +0 -1
  7. package/lib/esm/common/decorators/injectable.js +0 -1
  8. package/lib/esm/common/decorators/intercept.js +0 -1
  9. package/lib/esm/common/decorators/interceptor.js +0 -1
  10. package/lib/esm/common/decorators/lazyInject.js +0 -1
  11. package/lib/esm/common/decorators/module.js +0 -1
  12. package/lib/esm/common/decorators/opts.js +0 -1
  13. package/lib/esm/common/decorators/overrideProvider.js +0 -1
  14. package/lib/esm/common/decorators/scope.js +0 -1
  15. package/lib/esm/common/decorators/service.js +0 -1
  16. package/lib/esm/common/decorators/useOpts.js +0 -1
  17. package/lib/esm/common/decorators/value.js +0 -1
  18. package/lib/esm/common/domain/Container.js +0 -1
  19. package/lib/esm/common/domain/ControllerProvider.js +0 -1
  20. package/lib/esm/common/domain/InjectablePropertyType.js +0 -1
  21. package/lib/esm/common/domain/LocalsContainer.js +0 -1
  22. package/lib/esm/common/domain/Provider.js +0 -1
  23. package/lib/esm/common/domain/ProviderScope.js +0 -1
  24. package/lib/esm/common/domain/ProviderType.js +0 -1
  25. package/lib/esm/common/errors/InjectionError.js +0 -1
  26. package/lib/esm/common/errors/InvalidPropertyTokenError.js +0 -1
  27. package/lib/esm/common/fn/configuration.js +0 -1
  28. package/lib/esm/common/fn/constant.js +0 -1
  29. package/lib/esm/common/fn/inject.js +0 -1
  30. package/lib/esm/common/fn/injectMany.js +0 -1
  31. package/lib/esm/common/fn/injectable.js +0 -1
  32. package/lib/esm/common/fn/injector.js +0 -1
  33. package/lib/esm/common/fn/lazyInject.js +0 -1
  34. package/lib/esm/common/fn/localsContainer.js +0 -1
  35. package/lib/esm/common/fn/logger.js +0 -1
  36. package/lib/esm/common/fn/refValue.js +0 -1
  37. package/lib/esm/common/index.js +0 -1
  38. package/lib/esm/common/interfaces/DIConfigurationOptions.js +0 -1
  39. package/lib/esm/common/interfaces/DILogger.js +0 -1
  40. package/lib/esm/common/interfaces/DILoggerOptions.js +0 -1
  41. package/lib/esm/common/interfaces/ImportTokenProviderOpts.js +0 -1
  42. package/lib/esm/common/interfaces/InterceptorContext.js +0 -1
  43. package/lib/esm/common/interfaces/InterceptorMethods.js +0 -1
  44. package/lib/esm/common/interfaces/InvokeOptions.js +0 -1
  45. package/lib/esm/common/interfaces/OnDestroy.js +0 -1
  46. package/lib/esm/common/interfaces/OnInit.js +0 -1
  47. package/lib/esm/common/interfaces/ProviderOpts.js +0 -1
  48. package/lib/esm/common/interfaces/RegistrySettings.js +0 -1
  49. package/lib/esm/common/interfaces/ResolvedInvokeOptions.js +0 -1
  50. package/lib/esm/common/interfaces/TokenProvider.js +0 -1
  51. package/lib/esm/common/interfaces/TokenRoute.js +0 -1
  52. package/lib/esm/common/registries/GlobalProviders.js +0 -1
  53. package/lib/esm/common/registries/ProviderRegistry.js +0 -1
  54. package/lib/esm/common/services/DIConfiguration.js +0 -1
  55. package/lib/esm/common/services/DILogger.js +0 -1
  56. package/lib/esm/common/services/InjectorService.js +0 -1
  57. package/lib/esm/common/utils/colors.js +0 -1
  58. package/lib/esm/common/utils/createContainer.js +0 -1
  59. package/lib/esm/common/utils/discoverHooks.js +0 -1
  60. package/lib/esm/common/utils/getConfiguration.js +0 -1
  61. package/lib/esm/common/utils/getConstructorDependencies.js +0 -1
  62. package/lib/esm/common/utils/providerBuilder.js +0 -1
  63. package/lib/esm/index.js +0 -1
  64. package/lib/esm/node/decorators/injectContext.js +0 -1
  65. package/lib/esm/node/domain/ContextLogger.js +0 -1
  66. package/lib/esm/node/domain/DIContext.js +0 -1
  67. package/lib/esm/node/fn/context.js +0 -1
  68. package/lib/esm/node/fn/contextLogger.js +0 -1
  69. package/lib/esm/node/index.js +0 -1
  70. package/lib/esm/node/interfaces/AlterRunInContext.js +0 -1
  71. package/lib/esm/node/services/DILogger.js +0 -1
  72. package/lib/esm/node/services/DITest.js +0 -1
  73. package/lib/esm/node/utils/asyncHookContext.js +0 -1
  74. package/lib/esm/node/utils/attachLogger.js +0 -1
  75. package/lib/esm/node/utils/setLoggerConfiguration.js +0 -1
  76. package/lib/esm/node/utils/setLoggerFormat.js +0 -1
  77. package/lib/esm/node/utils/setLoggerLevel.js +0 -1
  78. package/package.json +12 -10
  79. package/.barrelsby.json +0 -5
  80. package/lib/browser/chunks/injectable.js +0 -65
  81. package/lib/browser/chunks/injectable.js.map +0 -1
  82. package/lib/browser/common/constants/constants.js +0 -9
  83. package/lib/browser/common/constants/constants.js.map +0 -1
  84. package/lib/browser/common/decorators/autoInjectable.js +0 -26
  85. package/lib/browser/common/decorators/autoInjectable.js.map +0 -1
  86. package/lib/browser/common/decorators/configuration.js +0 -24
  87. package/lib/browser/common/decorators/configuration.js.map +0 -1
  88. package/lib/browser/common/decorators/constant.js +0 -27
  89. package/lib/browser/common/decorators/constant.js.map +0 -1
  90. package/lib/browser/common/decorators/controller.js +0 -23
  91. package/lib/browser/common/decorators/controller.js.map +0 -1
  92. package/lib/browser/common/decorators/inject.js +0 -62
  93. package/lib/browser/common/decorators/inject.js.map +0 -1
  94. package/lib/browser/common/decorators/injectable.js +0 -14
  95. package/lib/browser/common/decorators/injectable.js.map +0 -1
  96. package/lib/browser/common/decorators/intercept.js +0 -57
  97. package/lib/browser/common/decorators/intercept.js.map +0 -1
  98. package/lib/browser/common/decorators/interceptor.js +0 -11
  99. package/lib/browser/common/decorators/interceptor.js.map +0 -1
  100. package/lib/browser/common/decorators/lazyInject.js +0 -43
  101. package/lib/browser/common/decorators/lazyInject.js.map +0 -1
  102. package/lib/browser/common/decorators/module.js +0 -22
  103. package/lib/browser/common/decorators/module.js.map +0 -1
  104. package/lib/browser/common/decorators/opts.js +0 -12
  105. package/lib/browser/common/decorators/opts.js.map +0 -1
  106. package/lib/browser/common/decorators/overrideProvider.js +0 -10
  107. package/lib/browser/common/decorators/overrideProvider.js.map +0 -1
  108. package/lib/browser/common/decorators/scope.js +0 -9
  109. package/lib/browser/common/decorators/scope.js.map +0 -1
  110. package/lib/browser/common/decorators/service.js +0 -8
  111. package/lib/browser/common/decorators/service.js.map +0 -1
  112. package/lib/browser/common/decorators/useOpts.js +0 -23
  113. package/lib/browser/common/decorators/useOpts.js.map +0 -1
  114. package/lib/browser/common/decorators/value.js +0 -23
  115. package/lib/browser/common/decorators/value.js.map +0 -1
  116. package/lib/browser/common/domain/Container.js +0 -64
  117. package/lib/browser/common/domain/Container.js.map +0 -1
  118. package/lib/browser/common/domain/ControllerProvider.js +0 -35
  119. package/lib/browser/common/domain/ControllerProvider.js.map +0 -1
  120. package/lib/browser/common/domain/InjectablePropertyType.js +0 -5
  121. package/lib/browser/common/domain/InjectablePropertyType.js.map +0 -1
  122. package/lib/browser/common/domain/LocalsContainer.js +0 -13
  123. package/lib/browser/common/domain/LocalsContainer.js.map +0 -1
  124. package/lib/browser/common/domain/Provider.js +0 -144
  125. package/lib/browser/common/domain/Provider.js.map +0 -1
  126. package/lib/browser/common/domain/ProviderScope.js +0 -5
  127. package/lib/browser/common/domain/ProviderScope.js.map +0 -1
  128. package/lib/browser/common/domain/ProviderType.js +0 -5
  129. package/lib/browser/common/domain/ProviderType.js.map +0 -1
  130. package/lib/browser/common/errors/InjectionError.js +0 -31
  131. package/lib/browser/common/errors/InjectionError.js.map +0 -1
  132. package/lib/browser/common/errors/InvalidPropertyTokenError.js +0 -17
  133. package/lib/browser/common/errors/InvalidPropertyTokenError.js.map +0 -1
  134. package/lib/browser/common/fn/configuration.js +0 -13
  135. package/lib/browser/common/fn/configuration.js.map +0 -1
  136. package/lib/browser/common/fn/constant.js +0 -8
  137. package/lib/browser/common/fn/constant.js.map +0 -1
  138. package/lib/browser/common/fn/inject.js +0 -13
  139. package/lib/browser/common/fn/inject.js.map +0 -1
  140. package/lib/browser/common/fn/injectMany.js +0 -9
  141. package/lib/browser/common/fn/injectMany.js.map +0 -1
  142. package/lib/browser/common/fn/injectable.js +0 -8
  143. package/lib/browser/common/fn/injectable.js.map +0 -1
  144. package/lib/browser/common/fn/injector.js +0 -13
  145. package/lib/browser/common/fn/injector.js.map +0 -1
  146. package/lib/browser/common/fn/lazyInject.js +0 -23
  147. package/lib/browser/common/fn/lazyInject.js.map +0 -1
  148. package/lib/browser/common/fn/localsContainer.js +0 -29
  149. package/lib/browser/common/fn/localsContainer.js.map +0 -1
  150. package/lib/browser/common/fn/logger.js +0 -8
  151. package/lib/browser/common/fn/logger.js.map +0 -1
  152. package/lib/browser/common/fn/refValue.js +0 -15
  153. package/lib/browser/common/fn/refValue.js.map +0 -1
  154. package/lib/browser/common/index.js +0 -115
  155. package/lib/browser/common/index.js.map +0 -1
  156. package/lib/browser/common/registries/GlobalProviders.js +0 -102
  157. package/lib/browser/common/registries/GlobalProviders.js.map +0 -1
  158. package/lib/browser/common/registries/ProviderRegistry.js +0 -8
  159. package/lib/browser/common/registries/ProviderRegistry.js.map +0 -1
  160. package/lib/browser/common/services/DIConfiguration.js +0 -99
  161. package/lib/browser/common/services/DIConfiguration.js.map +0 -1
  162. package/lib/browser/common/services/DILogger.js +0 -8
  163. package/lib/browser/common/services/DILogger.js.map +0 -1
  164. package/lib/browser/common/services/InjectorService.js +0 -378
  165. package/lib/browser/common/services/InjectorService.js.map +0 -1
  166. package/lib/browser/common/utils/colors.js +0 -5
  167. package/lib/browser/common/utils/colors.js.map +0 -1
  168. package/lib/browser/common/utils/createContainer.js +0 -10
  169. package/lib/browser/common/utils/createContainer.js.map +0 -1
  170. package/lib/browser/common/utils/discoverHooks.js +0 -17
  171. package/lib/browser/common/utils/discoverHooks.js.map +0 -1
  172. package/lib/browser/common/utils/getConfiguration.js +0 -20
  173. package/lib/browser/common/utils/getConfiguration.js.map +0 -1
  174. package/lib/browser/common/utils/getConstructorDependencies.js +0 -12
  175. package/lib/browser/common/utils/getConstructorDependencies.js.map +0 -1
  176. package/lib/browser/common/utils/providerBuilder.js +0 -8
  177. package/lib/browser/common/utils/providerBuilder.js.map +0 -1
  178. package/lib/esm/common/constants/constants.js.map +0 -1
  179. package/lib/esm/common/decorators/autoInjectable.js.map +0 -1
  180. package/lib/esm/common/decorators/configuration.js.map +0 -1
  181. package/lib/esm/common/decorators/constant.js.map +0 -1
  182. package/lib/esm/common/decorators/controller.js.map +0 -1
  183. package/lib/esm/common/decorators/inject.js.map +0 -1
  184. package/lib/esm/common/decorators/injectable.js.map +0 -1
  185. package/lib/esm/common/decorators/intercept.js.map +0 -1
  186. package/lib/esm/common/decorators/interceptor.js.map +0 -1
  187. package/lib/esm/common/decorators/lazyInject.js.map +0 -1
  188. package/lib/esm/common/decorators/module.js.map +0 -1
  189. package/lib/esm/common/decorators/opts.js.map +0 -1
  190. package/lib/esm/common/decorators/overrideProvider.js.map +0 -1
  191. package/lib/esm/common/decorators/scope.js.map +0 -1
  192. package/lib/esm/common/decorators/service.js.map +0 -1
  193. package/lib/esm/common/decorators/useOpts.js.map +0 -1
  194. package/lib/esm/common/decorators/value.js.map +0 -1
  195. package/lib/esm/common/domain/Container.js.map +0 -1
  196. package/lib/esm/common/domain/ControllerProvider.js.map +0 -1
  197. package/lib/esm/common/domain/InjectablePropertyType.js.map +0 -1
  198. package/lib/esm/common/domain/LocalsContainer.js.map +0 -1
  199. package/lib/esm/common/domain/Provider.js.map +0 -1
  200. package/lib/esm/common/domain/ProviderScope.js.map +0 -1
  201. package/lib/esm/common/domain/ProviderType.js.map +0 -1
  202. package/lib/esm/common/errors/InjectionError.js.map +0 -1
  203. package/lib/esm/common/errors/InvalidPropertyTokenError.js.map +0 -1
  204. package/lib/esm/common/fn/configuration.js.map +0 -1
  205. package/lib/esm/common/fn/constant.js.map +0 -1
  206. package/lib/esm/common/fn/inject.js.map +0 -1
  207. package/lib/esm/common/fn/injectMany.js.map +0 -1
  208. package/lib/esm/common/fn/injectable.js.map +0 -1
  209. package/lib/esm/common/fn/injector.js.map +0 -1
  210. package/lib/esm/common/fn/lazyInject.js.map +0 -1
  211. package/lib/esm/common/fn/localsContainer.js.map +0 -1
  212. package/lib/esm/common/fn/logger.js.map +0 -1
  213. package/lib/esm/common/fn/refValue.js.map +0 -1
  214. package/lib/esm/common/index.js.map +0 -1
  215. package/lib/esm/common/interfaces/DIConfigurationOptions.js.map +0 -1
  216. package/lib/esm/common/interfaces/DILogger.js.map +0 -1
  217. package/lib/esm/common/interfaces/DILoggerOptions.js.map +0 -1
  218. package/lib/esm/common/interfaces/ImportTokenProviderOpts.js.map +0 -1
  219. package/lib/esm/common/interfaces/InterceptorContext.js.map +0 -1
  220. package/lib/esm/common/interfaces/InterceptorMethods.js.map +0 -1
  221. package/lib/esm/common/interfaces/InvokeOptions.js.map +0 -1
  222. package/lib/esm/common/interfaces/OnDestroy.js.map +0 -1
  223. package/lib/esm/common/interfaces/OnInit.js.map +0 -1
  224. package/lib/esm/common/interfaces/ProviderOpts.js.map +0 -1
  225. package/lib/esm/common/interfaces/RegistrySettings.js.map +0 -1
  226. package/lib/esm/common/interfaces/ResolvedInvokeOptions.js.map +0 -1
  227. package/lib/esm/common/interfaces/TokenProvider.js.map +0 -1
  228. package/lib/esm/common/interfaces/TokenRoute.js.map +0 -1
  229. package/lib/esm/common/registries/GlobalProviders.js.map +0 -1
  230. package/lib/esm/common/registries/ProviderRegistry.js.map +0 -1
  231. package/lib/esm/common/services/DIConfiguration.js.map +0 -1
  232. package/lib/esm/common/services/DILogger.js.map +0 -1
  233. package/lib/esm/common/services/InjectorService.js.map +0 -1
  234. package/lib/esm/common/utils/colors.js.map +0 -1
  235. package/lib/esm/common/utils/createContainer.js.map +0 -1
  236. package/lib/esm/common/utils/discoverHooks.js.map +0 -1
  237. package/lib/esm/common/utils/getConfiguration.js.map +0 -1
  238. package/lib/esm/common/utils/getConstructorDependencies.js.map +0 -1
  239. package/lib/esm/common/utils/providerBuilder.js.map +0 -1
  240. package/lib/esm/index.js.map +0 -1
  241. package/lib/esm/node/decorators/injectContext.js.map +0 -1
  242. package/lib/esm/node/domain/ContextLogger.js.map +0 -1
  243. package/lib/esm/node/domain/DIContext.js.map +0 -1
  244. package/lib/esm/node/fn/context.js.map +0 -1
  245. package/lib/esm/node/fn/contextLogger.js.map +0 -1
  246. package/lib/esm/node/index.js.map +0 -1
  247. package/lib/esm/node/interfaces/AlterRunInContext.js.map +0 -1
  248. package/lib/esm/node/services/DILogger.js.map +0 -1
  249. package/lib/esm/node/services/DITest.js.map +0 -1
  250. package/lib/esm/node/utils/asyncHookContext.js.map +0 -1
  251. package/lib/esm/node/utils/attachLogger.js.map +0 -1
  252. package/lib/esm/node/utils/setLoggerConfiguration.js.map +0 -1
  253. package/lib/esm/node/utils/setLoggerFormat.js.map +0 -1
  254. package/lib/esm/node/utils/setLoggerLevel.js.map +0 -1
  255. package/src/common/constants/constants.ts +0 -5
  256. package/src/common/decorators/autoInjectable.spec.ts +0 -135
  257. package/src/common/decorators/autoInjectable.ts +0 -60
  258. package/src/common/decorators/configuration.spec.ts +0 -45
  259. package/src/common/decorators/configuration.ts +0 -36
  260. package/src/common/decorators/constant.spec.ts +0 -67
  261. package/src/common/decorators/constant.ts +0 -73
  262. package/src/common/decorators/controller.spec.ts +0 -43
  263. package/src/common/decorators/controller.ts +0 -73
  264. package/src/common/decorators/inject.spec.ts +0 -298
  265. package/src/common/decorators/inject.ts +0 -150
  266. package/src/common/decorators/injectable.spec.ts +0 -43
  267. package/src/common/decorators/injectable.ts +0 -30
  268. package/src/common/decorators/intercept.spec.ts +0 -150
  269. package/src/common/decorators/intercept.ts +0 -89
  270. package/src/common/decorators/interceptor.ts +0 -17
  271. package/src/common/decorators/lazyInject.spec.ts +0 -53
  272. package/src/common/decorators/lazyInject.ts +0 -92
  273. package/src/common/decorators/module.ts +0 -52
  274. package/src/common/decorators/opts.ts +0 -51
  275. package/src/common/decorators/overrideProvider.spec.ts +0 -30
  276. package/src/common/decorators/overrideProvider.ts +0 -15
  277. package/src/common/decorators/scope.spec.ts +0 -25
  278. package/src/common/decorators/scope.ts +0 -13
  279. package/src/common/decorators/service.ts +0 -14
  280. package/src/common/decorators/useOpts.spec.ts +0 -90
  281. package/src/common/decorators/useOpts.ts +0 -64
  282. package/src/common/decorators/value.spec.ts +0 -59
  283. package/src/common/decorators/value.ts +0 -60
  284. package/src/common/domain/Container.spec.ts +0 -85
  285. package/src/common/domain/Container.ts +0 -80
  286. package/src/common/domain/ControllerProvider.spec.ts +0 -55
  287. package/src/common/domain/ControllerProvider.ts +0 -48
  288. package/src/common/domain/InjectablePropertyType.ts +0 -7
  289. package/src/common/domain/LocalsContainer.spec.ts +0 -20
  290. package/src/common/domain/LocalsContainer.ts +0 -11
  291. package/src/common/domain/Provider.spec.ts +0 -107
  292. package/src/common/domain/Provider.ts +0 -218
  293. package/src/common/domain/ProviderScope.ts +0 -5
  294. package/src/common/domain/ProviderType.ts +0 -8
  295. package/src/common/errors/InjectionError.spec.ts +0 -17
  296. package/src/common/errors/InjectionError.ts +0 -71
  297. package/src/common/errors/InvalidPropertyTokenError.ts +0 -14
  298. package/src/common/fn/configuration.spec.ts +0 -42
  299. package/src/common/fn/configuration.ts +0 -22
  300. package/src/common/fn/constant.spec.ts +0 -37
  301. package/src/common/fn/constant.ts +0 -7
  302. package/src/common/fn/inject.spec.ts +0 -54
  303. package/src/common/fn/inject.ts +0 -32
  304. package/src/common/fn/injectMany.ts +0 -16
  305. package/src/common/fn/injectable.spec.ts +0 -88
  306. package/src/common/fn/injectable.ts +0 -15
  307. package/src/common/fn/injector.ts +0 -26
  308. package/src/common/fn/lazyInject.spec.ts +0 -22
  309. package/src/common/fn/lazyInject.ts +0 -36
  310. package/src/common/fn/localsContainer.ts +0 -55
  311. package/src/common/fn/logger.ts +0 -8
  312. package/src/common/fn/refValue.spec.ts +0 -47
  313. package/src/common/fn/refValue.ts +0 -33
  314. package/src/common/index.ts +0 -64
  315. package/src/common/integration/async-factory.spec.ts +0 -60
  316. package/src/common/integration/di.spec.ts +0 -153
  317. package/src/common/integration/imports.spec.ts +0 -39
  318. package/src/common/integration/request.spec.ts +0 -79
  319. package/src/common/integration/singleton.spec.ts +0 -125
  320. package/src/common/interfaces/DIConfigurationOptions.ts +0 -29
  321. package/src/common/interfaces/DILogger.ts +0 -13
  322. package/src/common/interfaces/DILoggerOptions.ts +0 -54
  323. package/src/common/interfaces/ImportTokenProviderOpts.ts +0 -29
  324. package/src/common/interfaces/InterceptorContext.ts +0 -13
  325. package/src/common/interfaces/InterceptorMethods.ts +0 -5
  326. package/src/common/interfaces/InvokeOptions.ts +0 -28
  327. package/src/common/interfaces/OnDestroy.ts +0 -3
  328. package/src/common/interfaces/OnInit.ts +0 -3
  329. package/src/common/interfaces/ProviderOpts.ts +0 -57
  330. package/src/common/interfaces/RegistrySettings.ts +0 -11
  331. package/src/common/interfaces/ResolvedInvokeOptions.ts +0 -14
  332. package/src/common/interfaces/TokenProvider.ts +0 -8
  333. package/src/common/interfaces/TokenRoute.ts +0 -6
  334. package/src/common/registries/GlobalProviders.spec.ts +0 -94
  335. package/src/common/registries/GlobalProviders.ts +0 -132
  336. package/src/common/registries/ProviderRegistry.spec.ts +0 -36
  337. package/src/common/registries/ProviderRegistry.ts +0 -32
  338. package/src/common/services/DIConfiguration.spec.ts +0 -60
  339. package/src/common/services/DIConfiguration.ts +0 -142
  340. package/src/common/services/DILogger.spec.ts +0 -22
  341. package/src/common/services/DILogger.ts +0 -8
  342. package/src/common/services/InjectorService.spec.ts +0 -793
  343. package/src/common/services/InjectorService.ts +0 -612
  344. package/src/common/utils/colors.spec.ts +0 -9
  345. package/src/common/utils/colors.ts +0 -11
  346. package/src/common/utils/createContainer.spec.ts +0 -18
  347. package/src/common/utils/createContainer.ts +0 -14
  348. package/src/common/utils/discoverHooks.ts +0 -16
  349. package/src/common/utils/getConfiguration.spec.ts +0 -40
  350. package/src/common/utils/getConfiguration.ts +0 -21
  351. package/src/common/utils/getConstructorDependencies.ts +0 -9
  352. package/src/common/utils/providerBuilder.ts +0 -95
  353. package/src/index.ts +0 -2
  354. package/src/node/decorators/injectContext.spec.ts +0 -60
  355. package/src/node/decorators/injectContext.ts +0 -29
  356. package/src/node/domain/ContextLogger.spec.ts +0 -400
  357. package/src/node/domain/ContextLogger.ts +0 -155
  358. package/src/node/domain/DIContext.spec.ts +0 -105
  359. package/src/node/domain/DIContext.ts +0 -115
  360. package/src/node/fn/context.ts +0 -24
  361. package/src/node/fn/contextLogger.spec.ts +0 -47
  362. package/src/node/fn/contextLogger.ts +0 -9
  363. package/src/node/index.ts +0 -16
  364. package/src/node/integration/async-factory-invoke.spec.ts +0 -58
  365. package/src/node/integration/inject-context.spec.ts +0 -29
  366. package/src/node/integration/invoke-oninit.spec.ts +0 -25
  367. package/src/node/interfaces/AlterRunInContext.ts +0 -3
  368. package/src/node/services/DILogger.spec.ts +0 -24
  369. package/src/node/services/DILogger.ts +0 -6
  370. package/src/node/services/DITest.spec.ts +0 -109
  371. package/src/node/services/DITest.ts +0 -122
  372. package/src/node/utils/asyncHookContext.spec.ts +0 -147
  373. package/src/node/utils/asyncHookContext.ts +0 -48
  374. package/src/node/utils/attachLogger.spec.ts +0 -14
  375. package/src/node/utils/attachLogger.ts +0 -7
  376. package/src/node/utils/setLoggerConfiguration.spec.ts +0 -43
  377. package/src/node/utils/setLoggerConfiguration.ts +0 -7
  378. package/src/node/utils/setLoggerFormat.ts +0 -33
  379. package/src/node/utils/setLoggerLevel.ts +0 -12
  380. package/vite.config.mts +0 -45
  381. package/vitest.config.mts +0 -21
@@ -1,54 +0,0 @@
1
- import {DITest} from "../../node/index.js";
2
- import {Injectable} from "../decorators/injectable.js";
3
- import {InjectorService} from "../services/InjectorService.js";
4
- import {inject} from "./inject.js";
5
-
6
- @Injectable()
7
- class ProvidersList extends Map<string, string> {}
8
-
9
- @Injectable()
10
- class MyService {
11
- readonly providersList = inject(ProvidersList);
12
-
13
- getValue() {
14
- return this.providersList.get("key");
15
- }
16
- }
17
-
18
- describe("inject()", () => {
19
- beforeEach(() => DITest.create());
20
- afterEach(() => DITest.reset());
21
-
22
- it("should inject the expected provider", async () => {
23
- class Nested {}
24
-
25
- class Test {
26
- readonly injector = inject(InjectorService);
27
- readonly nested = inject(Nested);
28
-
29
- constructor() {
30
- expect(this.injector).toBeInstanceOf(InjectorService);
31
- expect(this.nested).not.toBeInstanceOf(Nested);
32
- }
33
- }
34
-
35
- await DITest.invoke(Test, [
36
- {
37
- token: Nested,
38
- use: {}
39
- }
40
- ]);
41
- });
42
- it("should rebuild all dependencies using invoke", async () => {
43
- const providersList = inject(ProvidersList);
44
- const myService = inject(MyService);
45
- providersList.set("key", "value");
46
-
47
- expect(inject(ProvidersList).get("key")).toEqual("value");
48
- expect(myService.getValue()).toEqual("value");
49
-
50
- const newMyService = await DITest.invoke(MyService, []);
51
- expect(newMyService.getValue()).toEqual(undefined);
52
- expect(myService.getValue()).toEqual("value");
53
- });
54
- });
@@ -1,32 +0,0 @@
1
- import type {InvokeOptions} from "../interfaces/InvokeOptions.js";
2
- import type {TokenProvider} from "../interfaces/TokenProvider.js";
3
- import {injector} from "./injector.js";
4
- import {invokeOptions, localsContainer} from "./localsContainer.js";
5
-
6
- /**
7
- * Inject a provider to another provider.
8
- *
9
- * Use this function to inject a custom provider on constructor parameter or property.
10
- *
11
- * ```typescript
12
- * @Injectable()
13
- * export class MyService {
14
- * connection = inject(CONNECTION);
15
- * }
16
- * ```
17
- *
18
- * @param token A token provider or token provider group
19
- * @param opts
20
- * @returns {Function}
21
- * @decorator
22
- */
23
- export function inject<TokenType>(
24
- token: TokenProvider<TokenType>,
25
- opts?: Partial<Pick<InvokeOptions, "useOpts" | "rebuild" | "locals">>
26
- ): TokenType {
27
- return injector().resolve(token, {
28
- ...opts,
29
- ...invokeOptions(),
30
- locals: opts?.locals || localsContainer()
31
- });
32
- }
@@ -1,16 +0,0 @@
1
- import type {InvokeOptions} from "../interfaces/InvokeOptions.js";
2
- import {injector} from "./injector.js";
3
- import {localsContainer} from "./localsContainer.js";
4
-
5
- /**
6
- * Injects multiple instances of a given token using the injector service.
7
- * @param token - The injection token to resolve
8
- * @param opts - Optional configuration for the injection
9
- * @param opts.useOpts - Options for instance creation
10
- * @param opts.rebuild - Whether to rebuild the instance
11
- * @param opts.locals - Local container overrides
12
- * @returns Array of resolved instances
13
- */
14
- export function injectMany<T>(token: string | symbol, opts?: Partial<Pick<InvokeOptions, "useOpts" | "rebuild" | "locals">>): T[] {
15
- return injector().getMany<T>(token, {...opts, locals: opts?.locals || localsContainer()} as InvokeOptions);
16
- }
@@ -1,88 +0,0 @@
1
- import {Store} from "@tsed/core";
2
-
3
- import {DITest} from "../../node/index.js";
4
- import {ProviderScope} from "../domain/ProviderScope.js";
5
- import {ProviderType} from "../domain/ProviderType.js";
6
- import {inject} from "./inject.js";
7
- import {controller, injectable, interceptor} from "./injectable.js";
8
- import {logger} from "./logger.js";
9
-
10
- class Nested {
11
- get() {
12
- return "hello";
13
- }
14
- }
15
-
16
- class MyClass {
17
- nested = inject(Nested);
18
- logger = logger();
19
- }
20
-
21
- class MyController {}
22
-
23
- injectable(Nested).scope(ProviderScope.SINGLETON).class(Nested);
24
- injectable(MyClass);
25
-
26
- describe("injectable", () => {
27
- describe("injectable()", () => {
28
- it("should define a singleton scope", async () => {
29
- const instance = await DITest.invoke(MyClass);
30
-
31
- expect(instance.nested).toBeInstanceOf(Nested);
32
- expect(instance.nested.get()).toEqual("hello");
33
- });
34
- it("should define class with scope", async () => {
35
- injectable(MyClass).scope(ProviderScope.SINGLETON).class(MyClass).store().set("test", "test");
36
-
37
- expect(Store.from(MyClass).get("test")).toEqual("test");
38
- });
39
- it("should create a factory", async () => {
40
- const builder = injectable(Symbol.for("Test")).factory(() => "test");
41
- const provider = builder.inspect();
42
-
43
- expect(provider.type).toEqual(ProviderType.PROVIDER);
44
- expect(builder.token()).toEqual(Symbol.for("Test"));
45
- });
46
- it("should create an async factory", async () => {
47
- const builder = injectable(Symbol.for("Test")).asyncFactory(() => Promise.resolve("test"));
48
- const provider = builder.inspect();
49
-
50
- expect(provider.type).toEqual(ProviderType.PROVIDER);
51
- expect(builder.token()).toEqual(Symbol.for("Test"));
52
- });
53
- it("should create a value", async () => {
54
- const builder = injectable(Symbol.for("Test")).value({
55
- test: "test"
56
- });
57
- const provider = builder.inspect();
58
-
59
- expect(provider.type).toEqual(ProviderType.VALUE);
60
- expect(builder.token()).toEqual(Symbol.for("Test"));
61
- });
62
- });
63
-
64
- describe("controller()", () => {
65
- it("should define a singleton scope", async () => {
66
- const builder = controller(MyController)
67
- .path("/my-controller")
68
- .scope(ProviderScope.REQUEST)
69
- .middlewares({
70
- use: [() => {}]
71
- });
72
-
73
- const provider = builder.inspect();
74
-
75
- expect(provider.type).toEqual(ProviderType.CONTROLLER);
76
- expect(provider.scope).toEqual(ProviderScope.REQUEST);
77
- });
78
- });
79
-
80
- describe("interceptor()", () => {
81
- it("should define a singleton scope", async () => {
82
- const builder = interceptor(MyController);
83
- const provider = builder.inspect();
84
-
85
- expect(provider.type).toEqual(ProviderType.INTERCEPTOR);
86
- });
87
- });
88
- });
@@ -1,15 +0,0 @@
1
- import {ControllerProvider} from "../domain/ControllerProvider.js";
2
- import type {Provider} from "../domain/Provider.js";
3
- import {ProviderType} from "../domain/ProviderType.js";
4
- import {providerBuilder} from "../utils/providerBuilder.js";
5
-
6
- type PickedProps = "scope" | "path" | "alias" | "hooks" | "deps" | "imports" | "configuration" | "priority";
7
-
8
- const Props = ["type", "scope", "path", "alias", "hooks", "deps", "imports", "configuration", "priority"];
9
- export const injectable = providerBuilder<Provider, PickedProps | "type">(Props);
10
- export const interceptor = providerBuilder<Provider, PickedProps | "type">(Props, {
11
- type: ProviderType.INTERCEPTOR
12
- });
13
- export const controller = providerBuilder<ControllerProvider, PickedProps | "children" | "middlewares">([...Props, "middlewares"], {
14
- type: ProviderType.CONTROLLER
15
- });
@@ -1,26 +0,0 @@
1
- import {InjectorService} from "../services/InjectorService.js";
2
-
3
- let globalInjector: InjectorService = new InjectorService();
4
-
5
- /**
6
- * Return the existing injector service.
7
- *
8
- * Example:
9
- *
10
- * ```typescript
11
- * import {injector, Injectable} from "@tsed/di";
12
- *
13
- * @Injectable()
14
- * class MyService {
15
- * injector = injector();
16
- * }
17
- * ```
18
- */
19
- export function injector(): InjectorService {
20
- return globalInjector;
21
- }
22
-
23
- export async function destroyInjector() {
24
- await globalInjector.destroy();
25
- globalInjector = new InjectorService();
26
- }
@@ -1,22 +0,0 @@
1
- import {afterEach, beforeEach} from "vitest";
2
-
3
- import {DITest} from "../../node/index.js";
4
- import {lazyInject, optionalLazyInject} from "./lazyInject.js";
5
-
6
- describe("lazyInject", () => {
7
- beforeEach(() => DITest.create());
8
- afterEach(() => DITest.reset());
9
-
10
- it("should lazy load module", async () => {
11
- const service = await lazyInject(() => import("./__mock__/lazy.import.module.js"));
12
-
13
- expect(service).toBeDefined();
14
- expect(service.called).toBeTruthy();
15
- });
16
-
17
- it("should optionally lazy load module", async () => {
18
- const service = await optionalLazyInject(() => import("./__mock__/lazy.import.module.js"));
19
-
20
- expect(service).toBeDefined();
21
- });
22
- });
@@ -1,36 +0,0 @@
1
- import {isFunction} from "@tsed/core/utils/isFunction.js";
2
-
3
- import type {TokenProvider} from "../interfaces/TokenProvider.js";
4
- import {inject} from "./inject.js";
5
- import {injector} from "./injector.js";
6
-
7
- /**
8
- * Lazy load a provider from his package and invoke only when the provider is used.
9
- */
10
- export async function lazyInject<Token>(factory: () => Promise<{default: TokenProvider<Token>}>): Promise<Token> {
11
- const {default: token} = await factory();
12
-
13
- if (!injector().has(token)) {
14
- const instance = await inject(token);
15
-
16
- const instanceWithHook = instance as unknown as {$onInit?: () => Promise<void>};
17
-
18
- if ("$onInit" in instanceWithHook && isFunction(instanceWithHook.$onInit)) {
19
- await instanceWithHook.$onInit();
20
- }
21
- }
22
-
23
- return injector().get(token) as unknown as Promise<Token>;
24
- }
25
-
26
- export async function optionalLazyInject<Token>(
27
- factory: () => Promise<{
28
- default: TokenProvider;
29
- }>
30
- ): Promise<Token | undefined> {
31
- try {
32
- return await lazyInject(factory);
33
- } catch (er) {
34
- return undefined;
35
- }
36
- }
@@ -1,55 +0,0 @@
1
- import {LocalsContainer} from "../domain/LocalsContainer.js";
2
- import type {UseImportTokenProviderOpts} from "../interfaces/ImportTokenProviderOpts.js";
3
- import {InjectorService} from "../services/InjectorService.js";
4
- import {injector} from "./injector.js";
5
-
6
- let globalLocals: LocalsContainer | undefined;
7
- let globalInvOpts: any = {};
8
- const stagedLocals: LocalsContainer[] = [];
9
-
10
- /**
11
- * Get the locals container initiated by DITest or .bootstrap() method.
12
- */
13
- export function localsContainer({
14
- providers,
15
- rebuild
16
- }: {
17
- providers?: UseImportTokenProviderOpts[];
18
- rebuild?: boolean;
19
- } = {}) {
20
- if (!globalLocals || providers) {
21
- globalLocals = new LocalsContainer();
22
-
23
- if (providers) {
24
- providers.forEach((p) => {
25
- globalLocals!.set(p.token, p.use);
26
- });
27
-
28
- globalLocals.set(InjectorService, injector());
29
- }
30
-
31
- if (rebuild) {
32
- globalInvOpts.rebuild = rebuild;
33
- }
34
- }
35
-
36
- return globalLocals;
37
- }
38
-
39
- export function invokeOptions() {
40
- return {...globalInvOpts};
41
- }
42
-
43
- /**
44
- * Reset the locals container.
45
- */
46
- export function detachLocalsContainer() {
47
- globalLocals && stagedLocals.push(globalLocals);
48
- globalLocals = undefined;
49
- globalInvOpts = {};
50
- }
51
-
52
- export function cleanAllLocalsContainer() {
53
- detachLocalsContainer();
54
- stagedLocals.map((item) => item.clear());
55
- }
@@ -1,8 +0,0 @@
1
- import {injector} from "./injector.js";
2
-
3
- /**
4
- * Get the current `injector.logger` instance.
5
- */
6
- export function logger() {
7
- return injector().logger;
8
- }
@@ -1,47 +0,0 @@
1
- import {DITest} from "../../node/index.js";
2
- import {configuration} from "./configuration.js";
3
- import {refValue} from "./refValue.js";
4
-
5
- describe("refValue()", () => {
6
- beforeEach(() =>
7
- DITest.create({
8
- logger: {
9
- level: "off"
10
- }
11
- })
12
- );
13
- afterEach(() => DITest.reset());
14
- describe("when decorator is used as property decorator", () => {
15
- it("should create a getter", async () => {
16
- // WHEN
17
- class Test {
18
- test = refValue("logger.level", "default value");
19
- }
20
-
21
- // THEN
22
-
23
- const test = await DITest.invoke<Test>(Test);
24
-
25
- expect(test.test.value).toEqual("off");
26
-
27
- test.test.value = "test";
28
-
29
- expect(test.test.value).toEqual("test");
30
- });
31
- it("should create a getter with default value", async () => {
32
- expect(configuration().get("logger.test")).toEqual(undefined);
33
-
34
- // WHEN
35
- class Test {
36
- test = refValue("logger.test", "default value");
37
- }
38
-
39
- // THEN
40
-
41
- const test = await DITest.invoke<Test>(Test);
42
-
43
- expect(test.test.value).toEqual("default value");
44
- expect(configuration().get("logger.test")).toEqual(undefined);
45
- });
46
- });
47
- });
@@ -1,33 +0,0 @@
1
- import {injector} from "./injector.js";
2
-
3
- /**
4
- * Get a value from the `injector.settings`.
5
- *
6
- * ## Example
7
- *
8
- * ```ts
9
- * import {refValue, Injectable} from "@tsed/di";
10
- *
11
- * @Injectable()
12
- * class Test {
13
- * test = refValue("logger.level", "default value");
14
- *
15
- * constructor() {
16
- * console.log(this.test.value); // "off"
17
- * }
18
- * }
19
- *
20
- * @param expression The expression to get the value from the `injector.settings`.
21
- */
22
- export function refValue<Type>(expression: string): {value: Type | undefined};
23
- export function refValue<Type>(expression: string, defaultValue: Type | undefined): {value: Type};
24
- export function refValue<Type>(expression: string, defaultValue?: Type | undefined): {value: Type | undefined} {
25
- return Object.freeze({
26
- get value() {
27
- return injector().settings.get(expression, defaultValue);
28
- },
29
- set value(value: Type) {
30
- injector().settings.set(expression, value);
31
- }
32
- });
33
- }
@@ -1,64 +0,0 @@
1
- /**
2
- * @file Automatically generated by @tsed/barrels.
3
- */
4
- export * from "./constants/constants.js";
5
- export * from "./decorators/autoInjectable.js";
6
- export * from "./decorators/configuration.js";
7
- export * from "./decorators/constant.js";
8
- export * from "./decorators/controller.js";
9
- export * from "./decorators/inject.js";
10
- export * from "./decorators/injectable.js";
11
- export * from "./decorators/intercept.js";
12
- export * from "./decorators/interceptor.js";
13
- export * from "./decorators/lazyInject.js";
14
- export * from "./decorators/module.js";
15
- export * from "./decorators/opts.js";
16
- export * from "./decorators/overrideProvider.js";
17
- export * from "./decorators/scope.js";
18
- export * from "./decorators/service.js";
19
- export * from "./decorators/useOpts.js";
20
- export * from "./decorators/value.js";
21
- export * from "./domain/Container.js";
22
- export * from "./domain/ControllerProvider.js";
23
- export * from "./domain/InjectablePropertyType.js";
24
- export * from "./domain/LocalsContainer.js";
25
- export * from "./domain/Provider.js";
26
- export * from "./domain/ProviderScope.js";
27
- export * from "./domain/ProviderType.js";
28
- export * from "./errors/InjectionError.js";
29
- export * from "./errors/InvalidPropertyTokenError.js";
30
- export * from "./fn/configuration.js";
31
- export * from "./fn/constant.js";
32
- export * from "./fn/inject.js";
33
- export * from "./fn/injectable.js";
34
- export * from "./fn/injectMany.js";
35
- export * from "./fn/injector.js";
36
- export * from "./fn/lazyInject.js";
37
- export * from "./fn/localsContainer.js";
38
- export * from "./fn/logger.js";
39
- export * from "./fn/refValue.js";
40
- export * from "./interfaces/DIConfigurationOptions.js";
41
- export * from "./interfaces/DILogger.js";
42
- export * from "./interfaces/DILoggerOptions.js";
43
- export * from "./interfaces/ImportTokenProviderOpts.js";
44
- export * from "./interfaces/InterceptorContext.js";
45
- export * from "./interfaces/InterceptorMethods.js";
46
- export * from "./interfaces/InvokeOptions.js";
47
- export * from "./interfaces/OnDestroy.js";
48
- export * from "./interfaces/OnInit.js";
49
- export * from "./interfaces/ProviderOpts.js";
50
- export * from "./interfaces/RegistrySettings.js";
51
- export * from "./interfaces/ResolvedInvokeOptions.js";
52
- export * from "./interfaces/TokenProvider.js";
53
- export * from "./interfaces/TokenRoute.js";
54
- export * from "./registries/GlobalProviders.js";
55
- export * from "./registries/ProviderRegistry.js";
56
- export * from "./services/DIConfiguration.js";
57
- export * from "./services/DILogger.js";
58
- export * from "./services/InjectorService.js";
59
- export * from "./utils/colors.js";
60
- export * from "./utils/createContainer.js";
61
- export * from "./utils/discoverHooks.js";
62
- export * from "./utils/getConfiguration.js";
63
- export * from "./utils/getConstructorDependencies.js";
64
- export * from "./utils/providerBuilder.js";
@@ -1,60 +0,0 @@
1
- import {isPromise} from "@tsed/core";
2
- import {afterEach, beforeEach} from "vitest";
3
-
4
- import {Inject} from "../decorators/inject.js";
5
- import {Injectable} from "../decorators/injectable.js";
6
- import {Container} from "../domain/Container.js";
7
- import {destroyInjector, injector} from "../fn/injector.js";
8
- import {GlobalProviders} from "../registries/GlobalProviders.js";
9
- import {registerProvider} from "../registries/ProviderRegistry.js";
10
- import {InjectorService} from "../services/InjectorService.js";
11
-
12
- describe("DI", () => {
13
- afterEach(() => destroyInjector());
14
- describe("create new injector", () => {
15
- const ASYNC_FACTORY = Symbol.for("ASYNC_FACTORY");
16
-
17
- registerProvider({
18
- token: ASYNC_FACTORY,
19
-
20
- useAsyncFactory() {
21
- return {
22
- connection: true,
23
- close() {}
24
- };
25
- },
26
- hooks: {
27
- $onDestroy(instance: any) {
28
- return instance.close();
29
- }
30
- }
31
- });
32
-
33
- @Injectable()
34
- class Server {
35
- @Inject(ASYNC_FACTORY)
36
- asyncFactory: any;
37
- }
38
-
39
- afterAll(() => {
40
- GlobalProviders.delete(Server);
41
- GlobalProviders.delete(ASYNC_FACTORY);
42
- });
43
-
44
- it("should load all providers with the SINGLETON scope only", async () => {
45
- // GIVEN
46
- const container = new Container();
47
- container.add(ASYNC_FACTORY);
48
- container.add(Server);
49
-
50
- const server = injector().invoke<any>(Server);
51
- expect(isPromise(server.asyncFactory)).toEqual(true);
52
-
53
- // WHEN
54
- await injector().load(container);
55
-
56
- expect(isPromise(server.asyncFactory)).toEqual(false);
57
- expect(server.asyncFactory.connection).toEqual(true);
58
- });
59
- });
60
- });