@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,109 +0,0 @@
1
- import {Inject, Injectable, injectable, InjectorService} from "../../index.js";
2
- import {DITest} from "../services/DITest.js";
3
-
4
- class Model {}
5
-
6
- const SQLITE_DATA_SOURCE = injectable(Symbol.for("SQLITE_DATA_SOURCE"))
7
- .type("typeorm:datasource")
8
- .asyncFactory(() => {
9
- return Promise.resolve({
10
- id: "sqlite"
11
- });
12
- })
13
- .token();
14
-
15
- export abstract class AbstractDao {
16
- private readonly dao: any;
17
-
18
- protected constructor(
19
- protected readonly ds: any,
20
- model: any
21
- ) {
22
- this.dao = ds.getRepository(model);
23
- }
24
-
25
- getRepository(transaction?: any): any {
26
- return transaction ? transaction.getRepository(this.dao.target) : this.dao;
27
- }
28
- }
29
-
30
- @Injectable()
31
- export class FileDao extends AbstractDao {
32
- public constructor(@Inject(SQLITE_DATA_SOURCE) protected ds: any) {
33
- super(ds, Model);
34
- }
35
- }
36
-
37
- describe("DITest", () => {
38
- describe("create()", () => {
39
- beforeEach(() =>
40
- DITest.create({
41
- imports: [
42
- {
43
- token: SQLITE_DATA_SOURCE,
44
- use: {
45
- initialize: vi.fn(),
46
- getRepository: vi.fn().mockReturnValue({
47
- repository: true
48
- })
49
- }
50
- },
51
- {
52
- token: InjectorService, // not possible to override the injector
53
- use: "test"
54
- }
55
- ]
56
- })
57
- );
58
- afterEach(() => DITest.reset());
59
-
60
- it("should return a service with pre mocked dependencies", () => {
61
- const service = DITest.get<FileDao>(FileDao);
62
- const repository = DITest.get(SQLITE_DATA_SOURCE);
63
-
64
- expect(repository.getRepository).toHaveBeenCalledWith(Model);
65
-
66
- const result = service.getRepository();
67
-
68
- expect(result).toEqual({
69
- repository: true
70
- });
71
- });
72
-
73
- it("should return a service with pre mocked dependencies (invoke)", async () => {
74
- const service = await DITest.invoke<FileDao>(FileDao);
75
-
76
- const repository = DITest.get(SQLITE_DATA_SOURCE);
77
-
78
- expect(repository.getRepository).toHaveBeenCalledWith(Model);
79
-
80
- const result = service.getRepository();
81
-
82
- expect(result).toEqual({
83
- repository: true
84
- });
85
- });
86
-
87
- it("should return a service with pre mocked dependencies (invoke + mock)", async () => {
88
- const dao = {
89
- initialize: vi.fn(),
90
- getRepository: vi.fn().mockReturnValue({
91
- repository: false
92
- })
93
- };
94
- const service = await DITest.invoke<FileDao>(FileDao, [
95
- {
96
- token: SQLITE_DATA_SOURCE,
97
- use: dao
98
- }
99
- ]);
100
-
101
- const result = service.getRepository();
102
-
103
- expect(dao.getRepository).toHaveBeenCalledWith(Model);
104
- expect(result).toEqual({
105
- repository: false
106
- });
107
- });
108
- });
109
- });
@@ -1,122 +0,0 @@
1
- import {Env} from "@tsed/core/types/Env.js";
2
- import {getValue} from "@tsed/core/utils/getValue.js";
3
- import {isClass} from "@tsed/core/utils/isClass.js";
4
- import {isObject} from "@tsed/core/utils/isObject.js";
5
- import {$log} from "@tsed/logger";
6
-
7
- import {cleanAllLocalsContainer, detachLocalsContainer, localsContainer} from "../../common/fn/localsContainer.js";
8
- import {logger} from "../../common/fn/logger.js";
9
- import {
10
- createContainer,
11
- destroyInjector,
12
- DI_INJECTABLE_PROPS,
13
- inject,
14
- injector,
15
- InjectorService,
16
- type OnInit,
17
- TokenProvider,
18
- type UseImportTokenProviderOpts
19
- } from "../../common/index.js";
20
- import {DIContext} from "../domain/DIContext.js";
21
- import {setLoggerConfiguration} from "../utils/setLoggerConfiguration.js";
22
-
23
- /**
24
- * Tool to run test with lightweight DI sandbox.
25
- */
26
- export class DITest {
27
- static get injector() {
28
- return injector();
29
- }
30
-
31
- static async create(settings: Partial<TsED.Configuration> = {}) {
32
- DITest.createInjector(settings);
33
- await DITest.createContainer();
34
- }
35
-
36
- static async createContainer() {
37
- await injector().load(createContainer());
38
- }
39
-
40
- /**
41
- * Create a new injector with the right default services
42
- */
43
- static createInjector(settings: any = {}): InjectorService {
44
- const inj = injector();
45
- injector().logger = $log;
46
- inj.settings.set(DITest.configure(settings));
47
-
48
- setLoggerConfiguration();
49
-
50
- return inj;
51
- }
52
-
53
- /**
54
- * Resets the test injector of the test context, so it won't pollute your next test. Call this in your `tearDown` logic.
55
- */
56
- static async reset() {
57
- await destroyInjector();
58
- cleanAllLocalsContainer();
59
- }
60
-
61
- /**
62
- * Invoke a provider and return a fresh instance
63
- * @param target
64
- * @param providers
65
- */
66
- static async invoke<T = any>(target: TokenProvider<T>, providers: UseImportTokenProviderOpts[] = []): Promise<T> {
67
- const locals = localsContainer({providers, rebuild: true});
68
-
69
- const instance: T & Partial<OnInit> = inject(target as any, {locals, rebuild: true});
70
-
71
- if (instance && isObject(instance) && instance?.$onInit) {
72
- const result = instance.$onInit();
73
-
74
- if (result instanceof Promise) {
75
- return result
76
- .then(() => {
77
- return;
78
- })
79
- .then(() => instance as any);
80
- }
81
- }
82
-
83
- if (isClass(instance)) {
84
- const keys = (instance as any)[DI_INJECTABLE_PROPS];
85
-
86
- if (keys) {
87
- await Promise.all([...keys.keys()].map((key: string) => (instance as any)[key]));
88
- }
89
- }
90
-
91
- detachLocalsContainer();
92
-
93
- return instance as any;
94
- }
95
-
96
- /**
97
- * Return the instance from injector registry
98
- * @param target
99
- */
100
- static get<T = any>(target: TokenProvider): T {
101
- return injector().get<T>(target)!;
102
- }
103
-
104
- static createDIContext() {
105
- return new DIContext({
106
- id: "id",
107
- injector: injector(),
108
- logger: logger()
109
- });
110
- }
111
-
112
- protected static configure(settings: Partial<TsED.Configuration> = {}): Partial<TsED.Configuration> {
113
- return {
114
- ...settings,
115
- env: getValue(settings, "env", Env.TEST),
116
- logger: {
117
- ...getValue(settings, "logger", {}),
118
- level: getValue(settings, "logger.level", "off")
119
- }
120
- };
121
- }
122
- }
@@ -1,147 +0,0 @@
1
- import {DITest} from "../services/DITest.js";
2
- import {getContext, runInContext, setContext} from "./asyncHookContext.js";
3
-
4
- describe("asyncHookContext", () => {
5
- beforeEach(() => DITest.create());
6
- afterEach(() => DITest.reset());
7
- it("should initiate the async hook context - promise", async () => {
8
- const req = {type: "req"};
9
- const res = {type: "res"};
10
-
11
- function next(res: any, req: any) {
12
- return Promise.resolve(getContext());
13
- }
14
-
15
- function nextContext(res: any, req: any, next: any) {
16
- const $ctx: any = {
17
- id: "id",
18
- req,
19
- res
20
- };
21
-
22
- setContext($ctx);
23
-
24
- return next();
25
- }
26
-
27
- function app(req: any, res: any) {
28
- return runInContext(undefined, () => nextContext(req, res, () => next(req, res)), DITest.injector);
29
- }
30
-
31
- const result = await app(req, res);
32
-
33
- expect(result).toEqual({
34
- id: "id",
35
- req: {
36
- type: "res"
37
- },
38
- res: {
39
- type: "req"
40
- }
41
- });
42
- });
43
- it("should initiate the async hook context - promise - runInContext x2", async () => {
44
- const req = {type: "req"};
45
- const res = {type: "res"};
46
-
47
- function next(res: any, req: any) {
48
- return Promise.resolve(getContext());
49
- }
50
-
51
- function nextContext(res: any, req: any, next: any) {
52
- const $ctx: any = {
53
- id: "id",
54
- req,
55
- res
56
- };
57
-
58
- return runInContext($ctx, next);
59
- }
60
-
61
- function app(req: any, res: any) {
62
- return runInContext(undefined, () => nextContext(req, res, () => next(req, res)), DITest.injector);
63
- }
64
-
65
- const result = await app(req, res);
66
-
67
- expect(result).toEqual({
68
- id: "id",
69
- req: {
70
- type: "res"
71
- },
72
- res: {
73
- type: "req"
74
- }
75
- });
76
- });
77
- it("should initiate the async hook context - promise (initialValue)", async () => {
78
- const req = {type: "req"};
79
- const res = {type: "res"};
80
-
81
- function next(res: any, req: any) {
82
- return Promise.resolve(getContext({id: "id2"} as never));
83
- }
84
-
85
- function nextContext(res: any, req: any, next: any) {
86
- const $ctx: any = {
87
- id: "id",
88
- req,
89
- res
90
- };
91
-
92
- setContext($ctx);
93
-
94
- return next();
95
- }
96
-
97
- function app(req: any, res: any) {
98
- return runInContext(undefined, () => nextContext(req, res, () => next(req, res)), DITest.injector);
99
- }
100
-
101
- const result = await app(req, res);
102
-
103
- expect(result).toEqual({
104
- id: "id2"
105
- });
106
- });
107
- it("should initiate the async hook context - promise + setTimeout", async () => {
108
- const req = {type: "req"};
109
- const res = {type: "res"};
110
-
111
- function next(res: any, req: any) {
112
- return new Promise((resolve) => {
113
- setTimeout(() => {
114
- resolve(getContext());
115
- }, 100);
116
- });
117
- }
118
-
119
- function nextContext(res: any, req: any, next: any) {
120
- const $ctx: any = {
121
- id: "id",
122
- req,
123
- res
124
- };
125
-
126
- setContext($ctx);
127
-
128
- return next();
129
- }
130
-
131
- function app(req: any, res: any) {
132
- return runInContext(undefined, () => nextContext(req, res, () => next(req, res)), DITest.injector);
133
- }
134
-
135
- const result = await app(req, res);
136
-
137
- expect(result).toEqual({
138
- id: "id",
139
- req: {
140
- type: "res"
141
- },
142
- res: {
143
- type: "req"
144
- }
145
- });
146
- });
147
- });
@@ -1,48 +0,0 @@
1
- import {AsyncLocalStorage, AsyncResource} from "node:async_hooks";
2
-
3
- import {InjectorService} from "../../common/index.js";
4
- import type {DIContext} from "../domain/DIContext.js";
5
-
6
- const storage: AsyncLocalStorage<{current: DIContext | undefined}> = new AsyncLocalStorage();
7
-
8
- export function getAsyncStore() {
9
- return storage;
10
- }
11
-
12
- export function useContextRef() {
13
- return getAsyncStore().getStore();
14
- }
15
-
16
- export function getContext<Context = DIContext>(initialValue?: DIContext): Context | undefined {
17
- return initialValue || (useContextRef()?.current as any);
18
- }
19
-
20
- export async function runInContext<Result = unknown>(
21
- ctx: DIContext | undefined,
22
- cb: (...args: unknown[]) => Result,
23
- injector?: InjectorService
24
- ): Promise<Result> {
25
- const ref = useContextRef();
26
-
27
- if (ref) {
28
- ctx && setContext(ctx);
29
- return cb();
30
- } else {
31
- injector = ctx?.injector || injector;
32
- cb = (await injector?.alterAsync("$alterRunInContext", cb)) || cb;
33
-
34
- return storage.run({current: ctx}, cb);
35
- }
36
- }
37
-
38
- export function setContext(ctx: DIContext) {
39
- const ref = useContextRef();
40
-
41
- if (ref && !ref.current) {
42
- ref.current = ctx;
43
- }
44
- }
45
-
46
- export function bindContext(cb: any) {
47
- return AsyncResource.bind(cb);
48
- }
@@ -1,14 +0,0 @@
1
- import {Logger} from "@tsed/logger";
2
-
3
- import {injector} from "../../common/index.js";
4
- import {attachLogger} from "./attachLogger.js";
5
-
6
- describe("attachLogger", () => {
7
- it("should attach logger", () => {
8
- const $log = new Logger("test");
9
-
10
- attachLogger($log);
11
-
12
- expect(injector().logger).toEqual($log);
13
- });
14
- });
@@ -1,7 +0,0 @@
1
- import {DILogger, injector} from "../../common/index.js";
2
- import {setLoggerConfiguration} from "./setLoggerConfiguration.js";
3
-
4
- export function attachLogger($log: DILogger) {
5
- injector().logger = $log;
6
- setLoggerConfiguration();
7
- }
@@ -1,43 +0,0 @@
1
- import {Logger} from "@tsed/logger";
2
- import {afterEach} from "vitest";
3
-
4
- import {destroyInjector, injector} from "../../common/index.js";
5
- import {setLoggerConfiguration} from "./setLoggerConfiguration.js";
6
-
7
- describe("setLoggerConfiguration", () => {
8
- afterEach(() => destroyInjector());
9
- it("should change the logger level depending on the configuration", () => {
10
- injector().settings.set("logger.level", "info");
11
-
12
- setLoggerConfiguration();
13
-
14
- expect(injector().logger.level).toEqual("info");
15
- });
16
- it("should call $log.appenders.set()", () => {
17
- injector().logger = new Logger();
18
-
19
- vi.spyOn(injector().logger.appenders, "set").mockResolvedValue(undefined);
20
-
21
- injector().settings.set("logger.format", "format");
22
-
23
- setLoggerConfiguration();
24
-
25
- expect(injector().logger.appenders.set).toHaveBeenCalledWith("stdout", {
26
- type: "stdout",
27
- levels: ["info", "debug"],
28
- layout: {
29
- type: "pattern",
30
- pattern: "format"
31
- }
32
- });
33
-
34
- expect(injector().logger.appenders.set).toHaveBeenCalledWith("stderr", {
35
- levels: ["trace", "fatal", "error", "warn"],
36
- type: "stderr",
37
- layout: {
38
- type: "pattern",
39
- pattern: "format"
40
- }
41
- });
42
- });
43
- });
@@ -1,7 +0,0 @@
1
- import {setLoggerFormat} from "./setLoggerFormat.js";
2
- import {setLoggerLevel} from "./setLoggerLevel.js";
3
-
4
- export function setLoggerConfiguration() {
5
- setLoggerLevel();
6
- setLoggerFormat();
7
- }
@@ -1,33 +0,0 @@
1
- import {logger} from "../../common/fn/logger.js";
2
- import {injector} from "../../common/index.js";
3
-
4
- /**
5
- * @ignore
6
- */
7
- export function setLoggerFormat() {
8
- const {level, format} = injector().settings.logger;
9
-
10
- if (level) {
11
- injector().logger.level = level;
12
- }
13
-
14
- if (format && injector().logger.appenders) {
15
- logger().appenders.set("stdout", {
16
- type: "stdout",
17
- levels: ["info", "debug"],
18
- layout: {
19
- type: "pattern",
20
- pattern: format
21
- }
22
- });
23
-
24
- logger().appenders.set("stderr", {
25
- levels: ["trace", "fatal", "error", "warn"],
26
- type: "stderr",
27
- layout: {
28
- type: "pattern",
29
- pattern: format
30
- }
31
- });
32
- }
33
- }
@@ -1,12 +0,0 @@
1
- import {injector} from "../../common/index.js";
2
-
3
- /**
4
- * @ignore
5
- */
6
- export function setLoggerLevel() {
7
- const {level} = injector().settings.logger;
8
-
9
- if (level) {
10
- injector().logger.level = level;
11
- }
12
- }
package/vite.config.mts DELETED
@@ -1,45 +0,0 @@
1
- import {defineConfig} from "vite";
2
- import {join} from "node:path";
3
- import {extname, relative} from "path";
4
- import {fileURLToPath} from "node:url";
5
- import {globbySync} from "globby";
6
-
7
- // https://vitejs.dev/config/
8
- export default defineConfig({
9
- plugins: [],
10
- build: {
11
- assetsInlineLimit: 0,
12
- sourcemap: true,
13
- outDir: "lib/browser",
14
- lib: {
15
- entry: join(import.meta.dirname, "src/common/index.ts"),
16
- formats: ["es"]
17
- },
18
- rollupOptions: {
19
- external: [/node_modules\/(.*)/, /^@tsed\//],
20
- input: Object.fromEntries(
21
- globbySync("src/common/**/*.ts", {
22
- ignore: [
23
- "**/*.spec.{ts,tsx}",
24
- "**/*.stories.{ts,tsx}",
25
- "**/__mocks__/**",
26
- "**/__mock__/**",
27
- "**/interfaces/**"
28
- ]
29
- }).map((file) => [
30
- // The name of the entry point
31
- // lib/nested/foo.ts becomes nested/foo
32
- relative("src", file.slice(0, file.length - extname(file).length)),
33
- // The absolute path to the entry file
34
- // lib/nested/foo.ts becomes /project/lib/nested/foo.ts
35
- fileURLToPath(new URL(file, import.meta.url))
36
- ])
37
- ),
38
- output: {
39
- assetFileNames: "assets/[name][extname]",
40
- chunkFileNames: "chunks/[name].js",
41
- entryFileNames: "[name].js"
42
- }
43
- }
44
- }
45
- });
package/vitest.config.mts DELETED
@@ -1,21 +0,0 @@
1
- // @ts-ignore
2
- import {presets} from "@tsed/vitest/presets";
3
- import {defineConfig} from "vitest/config";
4
-
5
- export default defineConfig(
6
- {
7
- ...presets,
8
- test: {
9
- ...presets.test,
10
- coverage: {
11
- ...presets.test.coverage,
12
- thresholds: {
13
- statements: 0,
14
- branches: 0,
15
- functions: 0,
16
- lines: 0
17
- }
18
- }
19
- }
20
- }
21
- );