inversify 5.1.1 → 6.0.2

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 (450) hide show
  1. package/.nyc_output/16b95af9-19b9-451c-8475-9a8585677128.json +1 -0
  2. package/.nyc_output/processinfo/16b95af9-19b9-451c-8475-9a8585677128.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/CHANGELOG.md +81 -32
  5. package/LICENSE +22 -22
  6. package/README.md +309 -306
  7. package/amd/annotation/decorator_utils.js +114 -60
  8. package/amd/annotation/inject.js +27 -31
  9. package/amd/annotation/inject_base.js +17 -0
  10. package/amd/annotation/injectable.js +37 -17
  11. package/amd/annotation/lazy_service_identifier.js +15 -0
  12. package/amd/annotation/multi_inject.js +27 -18
  13. package/amd/annotation/named.js +29 -18
  14. package/amd/annotation/optional.js +29 -18
  15. package/amd/annotation/post_construct.js +28 -16
  16. package/amd/annotation/pre_destroy.js +28 -0
  17. package/amd/annotation/property_event_decorator.js +17 -0
  18. package/amd/annotation/tagged.js +9 -18
  19. package/amd/annotation/target_name.js +32 -13
  20. package/amd/annotation/unmanaged.js +32 -13
  21. package/amd/bindings/binding.js +39 -38
  22. package/amd/bindings/binding_count.js +10 -12
  23. package/amd/constants/error_msgs.js +64 -68
  24. package/amd/constants/literal_types.js +28 -29
  25. package/amd/constants/metadata_keys.js +28 -28
  26. package/amd/container/container.js +719 -332
  27. package/amd/container/container_module.js +21 -22
  28. package/amd/container/container_snapshot.js +20 -18
  29. package/amd/container/lookup.js +127 -82
  30. package/amd/container/module_activation_store.js +53 -0
  31. package/amd/interfaces/interfaces.js +10 -5
  32. package/amd/inversify.js +55 -32
  33. package/amd/planning/context.js +19 -20
  34. package/amd/planning/metadata.js +41 -22
  35. package/amd/planning/metadata_reader.js +43 -24
  36. package/amd/planning/plan.js +13 -14
  37. package/amd/planning/planner.js +163 -147
  38. package/amd/planning/queryable_string.js +30 -31
  39. package/amd/planning/reflection_utils.js +157 -128
  40. package/amd/planning/request.js +26 -27
  41. package/amd/planning/target.js +101 -80
  42. package/amd/resolution/instantiation.js +211 -56
  43. package/amd/resolution/resolver.js +222 -99
  44. package/amd/scope/scope.js +93 -0
  45. package/amd/syntax/binding_in_syntax.js +24 -25
  46. package/amd/syntax/binding_in_when_on_syntax.js +75 -73
  47. package/amd/syntax/binding_on_syntax.js +20 -17
  48. package/amd/syntax/binding_to_syntax.js +105 -79
  49. package/amd/syntax/binding_when_on_syntax.js +65 -63
  50. package/amd/syntax/binding_when_syntax.js +102 -100
  51. package/amd/syntax/constraint_helpers.js +61 -42
  52. package/amd/utils/async.js +17 -0
  53. package/amd/utils/binding_utils.js +77 -18
  54. package/amd/utils/clonable.js +12 -0
  55. package/amd/utils/exceptions.js +42 -11
  56. package/amd/utils/factory_type.js +11 -0
  57. package/amd/utils/id.js +10 -11
  58. package/amd/utils/js.js +19 -0
  59. package/amd/utils/serialization.js +129 -106
  60. package/es/annotation/decorator_utils.js +88 -55
  61. package/es/annotation/inject.js +4 -30
  62. package/es/annotation/inject_base.js +14 -0
  63. package/es/annotation/injectable.js +13 -14
  64. package/es/annotation/lazy_service_identifier.js +10 -0
  65. package/es/annotation/multi_inject.js +4 -16
  66. package/es/annotation/named.js +7 -16
  67. package/es/annotation/optional.js +7 -16
  68. package/es/annotation/post_construct.js +5 -14
  69. package/es/annotation/pre_destroy.js +5 -0
  70. package/es/annotation/property_event_decorator.js +13 -0
  71. package/es/annotation/tagged.js +6 -15
  72. package/es/annotation/target_name.js +10 -11
  73. package/es/annotation/unmanaged.js +10 -11
  74. package/es/bindings/binding.js +36 -35
  75. package/es/bindings/binding_count.js +5 -7
  76. package/es/constants/error_msgs.js +52 -59
  77. package/es/constants/literal_types.js +21 -22
  78. package/es/constants/metadata_keys.js +23 -23
  79. package/es/container/container.js +707 -339
  80. package/es/container/container_module.js +17 -18
  81. package/es/container/container_snapshot.js +15 -13
  82. package/es/container/lookup.js +104 -78
  83. package/es/container/module_activation_store.js +49 -0
  84. package/es/interfaces/interfaces.js +5 -2
  85. package/es/inversify.js +25 -21
  86. package/es/planning/context.js +15 -16
  87. package/es/planning/metadata.js +17 -18
  88. package/es/planning/metadata_reader.js +19 -20
  89. package/es/planning/plan.js +8 -9
  90. package/es/planning/planner.js +147 -152
  91. package/es/planning/queryable_string.js +25 -26
  92. package/es/planning/reflection_utils.js +135 -127
  93. package/es/planning/request.js +22 -23
  94. package/es/planning/target.js +81 -79
  95. package/es/resolution/instantiation.js +190 -54
  96. package/es/resolution/resolver.js +205 -99
  97. package/es/scope/scope.js +88 -0
  98. package/es/syntax/binding_in_syntax.js +21 -22
  99. package/es/syntax/binding_in_when_on_syntax.js +73 -71
  100. package/es/syntax/binding_on_syntax.js +16 -13
  101. package/es/syntax/binding_to_syntax.js +84 -78
  102. package/es/syntax/binding_when_on_syntax.js +62 -60
  103. package/es/syntax/binding_when_syntax.js +99 -97
  104. package/es/syntax/constraint_helpers.js +35 -36
  105. package/es/utils/async.js +11 -0
  106. package/es/utils/binding_utils.js +53 -12
  107. package/es/utils/clonable.js +7 -0
  108. package/es/utils/exceptions.js +16 -6
  109. package/es/utils/factory_type.js +6 -0
  110. package/es/utils/id.js +5 -6
  111. package/es/utils/js.js +13 -0
  112. package/es/utils/serialization.js +100 -98
  113. package/es6/annotation/decorator_utils.js +109 -59
  114. package/es6/annotation/inject.js +26 -32
  115. package/es6/annotation/inject_base.js +18 -0
  116. package/es6/annotation/injectable.js +35 -17
  117. package/es6/annotation/lazy_service_identifier.js +12 -0
  118. package/es6/annotation/multi_inject.js +26 -19
  119. package/es6/annotation/named.js +29 -19
  120. package/es6/annotation/optional.js +29 -19
  121. package/es6/annotation/post_construct.js +27 -17
  122. package/es6/annotation/pre_destroy.js +27 -0
  123. package/es6/annotation/property_event_decorator.js +16 -0
  124. package/es6/annotation/tagged.js +9 -18
  125. package/es6/annotation/target_name.js +32 -14
  126. package/es6/annotation/unmanaged.js +32 -14
  127. package/es6/bindings/binding.js +38 -37
  128. package/es6/bindings/binding_count.js +8 -10
  129. package/es6/constants/error_msgs.js +53 -46
  130. package/es6/constants/literal_types.js +26 -27
  131. package/es6/constants/metadata_keys.js +26 -26
  132. package/es6/container/container.js +520 -260
  133. package/es6/container/container_module.js +18 -19
  134. package/es6/container/container_snapshot.js +15 -13
  135. package/es6/container/lookup.js +120 -79
  136. package/es6/container/module_activation_store.js +51 -0
  137. package/es6/interfaces/interfaces.js +8 -3
  138. package/es6/inversify.js +76 -49
  139. package/es6/planning/context.js +17 -18
  140. package/es6/planning/metadata.js +38 -20
  141. package/es6/planning/metadata_reader.js +38 -20
  142. package/es6/planning/plan.js +10 -11
  143. package/es6/planning/planner.js +170 -156
  144. package/es6/planning/queryable_string.js +27 -28
  145. package/es6/planning/reflection_utils.js +155 -128
  146. package/es6/planning/request.js +24 -25
  147. package/es6/planning/target.js +99 -78
  148. package/es6/resolution/instantiation.js +151 -48
  149. package/es6/resolution/resolver.js +187 -100
  150. package/es6/scope/scope.js +57 -0
  151. package/es6/syntax/binding_in_syntax.js +23 -24
  152. package/es6/syntax/binding_in_when_on_syntax.js +75 -73
  153. package/es6/syntax/binding_on_syntax.js +18 -15
  154. package/es6/syntax/binding_to_syntax.js +105 -80
  155. package/es6/syntax/binding_when_on_syntax.js +64 -62
  156. package/es6/syntax/binding_when_syntax.js +79 -77
  157. package/es6/syntax/constraint_helpers.js +58 -40
  158. package/es6/utils/async.js +15 -0
  159. package/es6/utils/binding_utils.js +68 -6
  160. package/es6/utils/clonable.js +10 -0
  161. package/es6/utils/exceptions.js +40 -10
  162. package/es6/utils/factory_type.js +9 -0
  163. package/es6/utils/id.js +8 -9
  164. package/es6/utils/js.js +16 -0
  165. package/es6/utils/serialization.js +126 -104
  166. package/lib/annotation/decorator_utils.d.ts +16 -5
  167. package/lib/annotation/decorator_utils.js +113 -60
  168. package/lib/annotation/inject.d.ts +2 -9
  169. package/lib/annotation/inject.js +26 -33
  170. package/lib/annotation/inject_base.d.ts +3 -0
  171. package/lib/annotation/inject_base.js +18 -0
  172. package/lib/annotation/injectable.d.ts +2 -2
  173. package/lib/annotation/injectable.js +35 -17
  174. package/lib/annotation/lazy_service_identifier.d.ts +7 -0
  175. package/lib/annotation/lazy_service_identifier.js +13 -0
  176. package/lib/annotation/multi_inject.d.ts +2 -3
  177. package/lib/annotation/multi_inject.js +26 -19
  178. package/lib/annotation/named.d.ts +2 -2
  179. package/lib/annotation/named.js +29 -19
  180. package/lib/annotation/optional.d.ts +2 -2
  181. package/lib/annotation/optional.js +29 -19
  182. package/lib/annotation/post_construct.d.ts +4 -2
  183. package/lib/annotation/post_construct.js +27 -17
  184. package/lib/annotation/pre_destroy.d.ts +4 -0
  185. package/lib/annotation/pre_destroy.js +27 -0
  186. package/lib/annotation/property_event_decorator.d.ts +4 -0
  187. package/lib/annotation/property_event_decorator.js +16 -0
  188. package/lib/annotation/tagged.d.ts +2 -2
  189. package/lib/annotation/tagged.js +9 -18
  190. package/lib/annotation/target_name.d.ts +3 -2
  191. package/lib/annotation/target_name.js +32 -14
  192. package/lib/annotation/unmanaged.d.ts +3 -2
  193. package/lib/annotation/unmanaged.js +32 -14
  194. package/lib/bindings/binding.d.ts +20 -19
  195. package/lib/bindings/binding.js +39 -38
  196. package/lib/bindings/binding_count.d.ts +5 -6
  197. package/lib/bindings/binding_count.js +8 -10
  198. package/lib/constants/error_msgs.d.ts +32 -27
  199. package/lib/constants/error_msgs.js +62 -66
  200. package/lib/constants/literal_types.d.ts +5 -5
  201. package/lib/constants/literal_types.js +26 -27
  202. package/lib/constants/metadata_keys.d.ts +13 -12
  203. package/lib/constants/metadata_keys.js +26 -26
  204. package/lib/container/container.d.ts +73 -39
  205. package/lib/container/container.js +729 -342
  206. package/lib/container/container_module.d.ts +11 -11
  207. package/lib/container/container_module.js +20 -21
  208. package/lib/container/container_snapshot.d.ts +10 -7
  209. package/lib/container/container_snapshot.js +18 -16
  210. package/lib/container/lookup.d.ts +16 -14
  211. package/lib/container/lookup.js +126 -81
  212. package/lib/container/module_activation_store.d.ts +10 -0
  213. package/lib/container/module_activation_store.js +52 -0
  214. package/lib/interfaces/interfaces.d.ts +284 -237
  215. package/lib/interfaces/interfaces.js +8 -3
  216. package/lib/inversify.d.ts +25 -21
  217. package/lib/inversify.js +76 -49
  218. package/lib/planning/context.d.ts +11 -11
  219. package/lib/planning/context.js +18 -19
  220. package/lib/planning/metadata.d.ts +8 -8
  221. package/lib/planning/metadata.js +39 -21
  222. package/lib/planning/metadata_reader.d.ts +6 -6
  223. package/lib/planning/metadata_reader.js +41 -23
  224. package/lib/planning/plan.d.ts +7 -7
  225. package/lib/planning/plan.js +11 -12
  226. package/lib/planning/planner.d.ts +5 -5
  227. package/lib/planning/planner.js +171 -157
  228. package/lib/planning/queryable_string.d.ts +11 -11
  229. package/lib/planning/queryable_string.js +28 -29
  230. package/lib/planning/reflection_utils.d.ts +5 -5
  231. package/lib/planning/reflection_utils.js +159 -132
  232. package/lib/planning/request.d.ts +14 -14
  233. package/lib/planning/request.js +25 -26
  234. package/lib/planning/target.d.ts +23 -21
  235. package/lib/planning/target.js +103 -82
  236. package/lib/resolution/instantiation.d.ts +3 -3
  237. package/lib/resolution/instantiation.js +212 -57
  238. package/lib/resolution/resolver.d.ts +3 -3
  239. package/lib/resolution/resolver.js +227 -102
  240. package/lib/scope/scope.d.ts +3 -0
  241. package/lib/scope/scope.js +93 -0
  242. package/lib/syntax/binding_in_syntax.d.ts +9 -9
  243. package/lib/syntax/binding_in_syntax.js +24 -25
  244. package/lib/syntax/binding_in_when_on_syntax.d.ts +29 -28
  245. package/lib/syntax/binding_in_when_on_syntax.js +76 -74
  246. package/lib/syntax/binding_on_syntax.d.ts +8 -7
  247. package/lib/syntax/binding_on_syntax.js +19 -16
  248. package/lib/syntax/binding_to_syntax.d.ts +18 -16
  249. package/lib/syntax/binding_to_syntax.js +106 -81
  250. package/lib/syntax/binding_when_on_syntax.d.ts +25 -24
  251. package/lib/syntax/binding_when_on_syntax.js +65 -63
  252. package/lib/syntax/binding_when_syntax.d.ts +21 -21
  253. package/lib/syntax/binding_when_syntax.js +102 -100
  254. package/lib/syntax/constraint_helpers.d.ts +6 -6
  255. package/lib/syntax/constraint_helpers.js +60 -42
  256. package/lib/tsconfig.tsbuildinfo +1 -719
  257. package/lib/utils/async.d.ts +3 -0
  258. package/lib/utils/async.js +15 -0
  259. package/lib/utils/binding_utils.d.ts +4 -2
  260. package/lib/utils/binding_utils.js +78 -16
  261. package/lib/utils/clonable.d.ts +3 -0
  262. package/lib/utils/clonable.js +10 -0
  263. package/lib/utils/exceptions.d.ts +2 -1
  264. package/lib/utils/exceptions.js +40 -10
  265. package/lib/utils/factory_type.d.ts +5 -0
  266. package/lib/utils/factory_type.js +9 -0
  267. package/lib/utils/id.d.ts +2 -2
  268. package/lib/utils/id.js +8 -9
  269. package/lib/utils/js.d.ts +1 -0
  270. package/lib/utils/js.js +17 -0
  271. package/lib/utils/serialization.d.ts +10 -7
  272. package/lib/utils/serialization.js +127 -105
  273. package/package.json +61 -77
  274. package/.auditignore +0 -2
  275. package/.nyc_output/4df1ad3a-a319-42b9-bb65-746cefa3318e.json +0 -1
  276. package/.nyc_output/processinfo/4df1ad3a-a319-42b9-bb65-746cefa3318e.json +0 -1
  277. package/CODE_OF_CONDUCT.md +0 -46
  278. package/amd/annotation/decorator_utils.js.map +0 -1
  279. package/amd/annotation/inject.js.map +0 -1
  280. package/amd/annotation/injectable.js.map +0 -1
  281. package/amd/annotation/multi_inject.js.map +0 -1
  282. package/amd/annotation/named.js.map +0 -1
  283. package/amd/annotation/optional.js.map +0 -1
  284. package/amd/annotation/post_construct.js.map +0 -1
  285. package/amd/annotation/tagged.js.map +0 -1
  286. package/amd/annotation/target_name.js.map +0 -1
  287. package/amd/annotation/unmanaged.js.map +0 -1
  288. package/amd/bindings/binding.js.map +0 -1
  289. package/amd/bindings/binding_count.js.map +0 -1
  290. package/amd/constants/error_msgs.js.map +0 -1
  291. package/amd/constants/literal_types.js.map +0 -1
  292. package/amd/constants/metadata_keys.js.map +0 -1
  293. package/amd/container/container.js.map +0 -1
  294. package/amd/container/container_module.js.map +0 -1
  295. package/amd/container/container_snapshot.js.map +0 -1
  296. package/amd/container/lookup.js.map +0 -1
  297. package/amd/interfaces/interfaces.js.map +0 -1
  298. package/amd/inversify.js.map +0 -1
  299. package/amd/planning/context.js.map +0 -1
  300. package/amd/planning/metadata.js.map +0 -1
  301. package/amd/planning/metadata_reader.js.map +0 -1
  302. package/amd/planning/plan.js.map +0 -1
  303. package/amd/planning/planner.js.map +0 -1
  304. package/amd/planning/queryable_string.js.map +0 -1
  305. package/amd/planning/reflection_utils.js.map +0 -1
  306. package/amd/planning/request.js.map +0 -1
  307. package/amd/planning/target.js.map +0 -1
  308. package/amd/resolution/instantiation.js.map +0 -1
  309. package/amd/resolution/resolver.js.map +0 -1
  310. package/amd/syntax/binding_in_syntax.js.map +0 -1
  311. package/amd/syntax/binding_in_when_on_syntax.js.map +0 -1
  312. package/amd/syntax/binding_on_syntax.js.map +0 -1
  313. package/amd/syntax/binding_to_syntax.js.map +0 -1
  314. package/amd/syntax/binding_when_on_syntax.js.map +0 -1
  315. package/amd/syntax/binding_when_syntax.js.map +0 -1
  316. package/amd/syntax/constraint_helpers.js.map +0 -1
  317. package/amd/utils/binding_utils.js.map +0 -1
  318. package/amd/utils/exceptions.js.map +0 -1
  319. package/amd/utils/id.js.map +0 -1
  320. package/amd/utils/serialization.js.map +0 -1
  321. package/es/annotation/decorator_utils.js.map +0 -1
  322. package/es/annotation/inject.js.map +0 -1
  323. package/es/annotation/injectable.js.map +0 -1
  324. package/es/annotation/multi_inject.js.map +0 -1
  325. package/es/annotation/named.js.map +0 -1
  326. package/es/annotation/optional.js.map +0 -1
  327. package/es/annotation/post_construct.js.map +0 -1
  328. package/es/annotation/tagged.js.map +0 -1
  329. package/es/annotation/target_name.js.map +0 -1
  330. package/es/annotation/unmanaged.js.map +0 -1
  331. package/es/bindings/binding.js.map +0 -1
  332. package/es/bindings/binding_count.js.map +0 -1
  333. package/es/constants/error_msgs.js.map +0 -1
  334. package/es/constants/literal_types.js.map +0 -1
  335. package/es/constants/metadata_keys.js.map +0 -1
  336. package/es/container/container.js.map +0 -1
  337. package/es/container/container_module.js.map +0 -1
  338. package/es/container/container_snapshot.js.map +0 -1
  339. package/es/container/lookup.js.map +0 -1
  340. package/es/interfaces/interfaces.js.map +0 -1
  341. package/es/inversify.js.map +0 -1
  342. package/es/planning/context.js.map +0 -1
  343. package/es/planning/metadata.js.map +0 -1
  344. package/es/planning/metadata_reader.js.map +0 -1
  345. package/es/planning/plan.js.map +0 -1
  346. package/es/planning/planner.js.map +0 -1
  347. package/es/planning/queryable_string.js.map +0 -1
  348. package/es/planning/reflection_utils.js.map +0 -1
  349. package/es/planning/request.js.map +0 -1
  350. package/es/planning/target.js.map +0 -1
  351. package/es/resolution/instantiation.js.map +0 -1
  352. package/es/resolution/resolver.js.map +0 -1
  353. package/es/syntax/binding_in_syntax.js.map +0 -1
  354. package/es/syntax/binding_in_when_on_syntax.js.map +0 -1
  355. package/es/syntax/binding_on_syntax.js.map +0 -1
  356. package/es/syntax/binding_to_syntax.js.map +0 -1
  357. package/es/syntax/binding_when_on_syntax.js.map +0 -1
  358. package/es/syntax/binding_when_syntax.js.map +0 -1
  359. package/es/syntax/constraint_helpers.js.map +0 -1
  360. package/es/utils/binding_utils.js.map +0 -1
  361. package/es/utils/exceptions.js.map +0 -1
  362. package/es/utils/id.js.map +0 -1
  363. package/es/utils/serialization.js.map +0 -1
  364. package/es6/annotation/decorator_utils.js.map +0 -1
  365. package/es6/annotation/inject.js.map +0 -1
  366. package/es6/annotation/injectable.js.map +0 -1
  367. package/es6/annotation/multi_inject.js.map +0 -1
  368. package/es6/annotation/named.js.map +0 -1
  369. package/es6/annotation/optional.js.map +0 -1
  370. package/es6/annotation/post_construct.js.map +0 -1
  371. package/es6/annotation/tagged.js.map +0 -1
  372. package/es6/annotation/target_name.js.map +0 -1
  373. package/es6/annotation/unmanaged.js.map +0 -1
  374. package/es6/bindings/binding.js.map +0 -1
  375. package/es6/bindings/binding_count.js.map +0 -1
  376. package/es6/constants/error_msgs.js.map +0 -1
  377. package/es6/constants/literal_types.js.map +0 -1
  378. package/es6/constants/metadata_keys.js.map +0 -1
  379. package/es6/container/container.js.map +0 -1
  380. package/es6/container/container_module.js.map +0 -1
  381. package/es6/container/container_snapshot.js.map +0 -1
  382. package/es6/container/lookup.js.map +0 -1
  383. package/es6/interfaces/interfaces.js.map +0 -1
  384. package/es6/inversify.js.map +0 -1
  385. package/es6/planning/context.js.map +0 -1
  386. package/es6/planning/metadata.js.map +0 -1
  387. package/es6/planning/metadata_reader.js.map +0 -1
  388. package/es6/planning/plan.js.map +0 -1
  389. package/es6/planning/planner.js.map +0 -1
  390. package/es6/planning/queryable_string.js.map +0 -1
  391. package/es6/planning/reflection_utils.js.map +0 -1
  392. package/es6/planning/request.js.map +0 -1
  393. package/es6/planning/target.js.map +0 -1
  394. package/es6/resolution/instantiation.js.map +0 -1
  395. package/es6/resolution/resolver.js.map +0 -1
  396. package/es6/syntax/binding_in_syntax.js.map +0 -1
  397. package/es6/syntax/binding_in_when_on_syntax.js.map +0 -1
  398. package/es6/syntax/binding_on_syntax.js.map +0 -1
  399. package/es6/syntax/binding_to_syntax.js.map +0 -1
  400. package/es6/syntax/binding_when_on_syntax.js.map +0 -1
  401. package/es6/syntax/binding_when_syntax.js.map +0 -1
  402. package/es6/syntax/constraint_helpers.js.map +0 -1
  403. package/es6/utils/binding_utils.js.map +0 -1
  404. package/es6/utils/exceptions.js.map +0 -1
  405. package/es6/utils/id.js.map +0 -1
  406. package/es6/utils/serialization.js.map +0 -1
  407. package/lib/annotation/decorator_utils.js.map +0 -1
  408. package/lib/annotation/inject.js.map +0 -1
  409. package/lib/annotation/injectable.js.map +0 -1
  410. package/lib/annotation/multi_inject.js.map +0 -1
  411. package/lib/annotation/named.js.map +0 -1
  412. package/lib/annotation/optional.js.map +0 -1
  413. package/lib/annotation/post_construct.js.map +0 -1
  414. package/lib/annotation/tagged.js.map +0 -1
  415. package/lib/annotation/target_name.js.map +0 -1
  416. package/lib/annotation/unmanaged.js.map +0 -1
  417. package/lib/bindings/binding.js.map +0 -1
  418. package/lib/bindings/binding_count.js.map +0 -1
  419. package/lib/constants/error_msgs.js.map +0 -1
  420. package/lib/constants/literal_types.js.map +0 -1
  421. package/lib/constants/metadata_keys.js.map +0 -1
  422. package/lib/container/container.js.map +0 -1
  423. package/lib/container/container_module.js.map +0 -1
  424. package/lib/container/container_snapshot.js.map +0 -1
  425. package/lib/container/lookup.js.map +0 -1
  426. package/lib/interfaces/interfaces.js.map +0 -1
  427. package/lib/inversify.js.map +0 -1
  428. package/lib/planning/context.js.map +0 -1
  429. package/lib/planning/metadata.js.map +0 -1
  430. package/lib/planning/metadata_reader.js.map +0 -1
  431. package/lib/planning/plan.js.map +0 -1
  432. package/lib/planning/planner.js.map +0 -1
  433. package/lib/planning/queryable_string.js.map +0 -1
  434. package/lib/planning/reflection_utils.js.map +0 -1
  435. package/lib/planning/request.js.map +0 -1
  436. package/lib/planning/target.js.map +0 -1
  437. package/lib/resolution/instantiation.js.map +0 -1
  438. package/lib/resolution/resolver.js.map +0 -1
  439. package/lib/syntax/binding_in_syntax.js.map +0 -1
  440. package/lib/syntax/binding_in_when_on_syntax.js.map +0 -1
  441. package/lib/syntax/binding_on_syntax.js.map +0 -1
  442. package/lib/syntax/binding_to_syntax.js.map +0 -1
  443. package/lib/syntax/binding_when_on_syntax.js.map +0 -1
  444. package/lib/syntax/binding_when_syntax.js.map +0 -1
  445. package/lib/syntax/constraint_helpers.js.map +0 -1
  446. package/lib/utils/binding_utils.js.map +0 -1
  447. package/lib/utils/exceptions.js.map +0 -1
  448. package/lib/utils/id.js.map +0 -1
  449. package/lib/utils/serialization.js.map +0 -1
  450. package/mocha.opts +0 -3
@@ -0,0 +1,3 @@
1
+ declare function isPromise<T>(object: unknown): object is Promise<T>;
2
+ declare function isPromiseOrContainsPromise<T>(object: unknown): object is Promise<T> | (T | Promise<T>)[];
3
+ export { isPromise, isPromiseOrContainsPromise };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPromiseOrContainsPromise = exports.isPromise = void 0;
4
+ function isPromise(object) {
5
+ var isObjectOrFunction = (typeof object === 'object' && object !== null) || typeof object === 'function';
6
+ return isObjectOrFunction && typeof object.then === "function";
7
+ }
8
+ exports.isPromise = isPromise;
9
+ function isPromiseOrContainsPromise(object) {
10
+ if (isPromise(object)) {
11
+ return true;
12
+ }
13
+ return Array.isArray(object) && object.some(isPromise);
14
+ }
15
+ exports.isPromiseOrContainsPromise = isPromiseOrContainsPromise;
@@ -1,2 +1,4 @@
1
- import { interfaces } from "../inversify";
2
- export declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier<any>) => (...types: interfaces.ServiceIdentifier<any>[]) => void;
1
+ import type { interfaces } from '../interfaces/interfaces';
2
+ export declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
3
+ export declare const ensureFullyBound: <T = unknown>(binding: interfaces.Binding<T>) => void;
4
+ export declare const getFactoryDetails: <T = unknown>(binding: interfaces.Binding<T>) => interfaces.FactoryDetails;
@@ -1,16 +1,78 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.multiBindToService = void 0;
4
- var multiBindToService = function (container) {
5
- return function (service) {
6
- return function () {
7
- var types = [];
8
- for (var _i = 0; _i < arguments.length; _i++) {
9
- types[_i] = arguments[_i];
10
- }
11
- return types.forEach(function (t) { return container.bind(t).toService(service); });
12
- };
13
- };
14
- };
15
- exports.multiBindToService = multiBindToService;
16
- //# sourceMappingURL=binding_utils.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.getFactoryDetails = exports.ensureFullyBound = exports.multiBindToService = void 0;
23
+ var serialization_1 = require("../utils/serialization");
24
+ var ERROR_MSGS = __importStar(require("../constants/error_msgs"));
25
+ var literal_types_1 = require("../constants/literal_types");
26
+ var factory_type_1 = require("./factory_type");
27
+ var multiBindToService = function (container) {
28
+ return function (service) {
29
+ return function () {
30
+ var types = [];
31
+ for (var _i = 0; _i < arguments.length; _i++) {
32
+ types[_i] = arguments[_i];
33
+ }
34
+ return types.forEach(function (t) { return container.bind(t).toService(service); });
35
+ };
36
+ };
37
+ };
38
+ exports.multiBindToService = multiBindToService;
39
+ var ensureFullyBound = function (binding) {
40
+ var boundValue = null;
41
+ switch (binding.type) {
42
+ case literal_types_1.BindingTypeEnum.ConstantValue:
43
+ case literal_types_1.BindingTypeEnum.Function:
44
+ boundValue = binding.cache;
45
+ break;
46
+ case literal_types_1.BindingTypeEnum.Constructor:
47
+ case literal_types_1.BindingTypeEnum.Instance:
48
+ boundValue = binding.implementationType;
49
+ break;
50
+ case literal_types_1.BindingTypeEnum.DynamicValue:
51
+ boundValue = binding.dynamicValue;
52
+ break;
53
+ case literal_types_1.BindingTypeEnum.Provider:
54
+ boundValue = binding.provider;
55
+ break;
56
+ case literal_types_1.BindingTypeEnum.Factory:
57
+ boundValue = binding.factory;
58
+ break;
59
+ }
60
+ if (boundValue === null) {
61
+ var serviceIdentifierAsString = (0, serialization_1.getServiceIdentifierAsString)(binding.serviceIdentifier);
62
+ throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifierAsString);
63
+ }
64
+ };
65
+ exports.ensureFullyBound = ensureFullyBound;
66
+ var getFactoryDetails = function (binding) {
67
+ switch (binding.type) {
68
+ case literal_types_1.BindingTypeEnum.Factory:
69
+ return { factory: binding.factory, factoryType: factory_type_1.FactoryType.Factory };
70
+ case literal_types_1.BindingTypeEnum.Provider:
71
+ return { factory: binding.provider, factoryType: factory_type_1.FactoryType.Provider };
72
+ case literal_types_1.BindingTypeEnum.DynamicValue:
73
+ return { factory: binding.dynamicValue, factoryType: factory_type_1.FactoryType.DynamicValue };
74
+ default:
75
+ throw new Error("Unexpected factory type " + binding.type);
76
+ }
77
+ };
78
+ exports.getFactoryDetails = getFactoryDetails;
@@ -0,0 +1,3 @@
1
+ import { interfaces } from '../interfaces/interfaces';
2
+ declare function isClonable<T>(obj: unknown): obj is interfaces.Clonable<T>;
3
+ export { isClonable };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isClonable = void 0;
4
+ function isClonable(obj) {
5
+ return (typeof obj === 'object')
6
+ && (obj !== null)
7
+ && ('clone' in obj)
8
+ && typeof obj.clone === 'function';
9
+ }
10
+ exports.isClonable = isClonable;
@@ -1 +1,2 @@
1
- export declare function isStackOverflowExeption(error: Error): boolean;
1
+ export declare function isStackOverflowExeption(error: unknown): error is RangeError;
2
+ export declare const tryAndThrowErrorIfStackOverflow: <T>(fn: () => T, errorCallback: () => Error) => T;
@@ -1,10 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isStackOverflowExeption = void 0;
4
- var ERROR_MSGS = require("../constants/error_msgs");
5
- function isStackOverflowExeption(error) {
6
- return (error instanceof RangeError ||
7
- error.message === ERROR_MSGS.STACK_OVERFLOW);
8
- }
9
- exports.isStackOverflowExeption = isStackOverflowExeption;
10
- //# sourceMappingURL=exceptions.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.tryAndThrowErrorIfStackOverflow = exports.isStackOverflowExeption = void 0;
23
+ var ERROR_MSGS = __importStar(require("../constants/error_msgs"));
24
+ function isStackOverflowExeption(error) {
25
+ return (error instanceof RangeError ||
26
+ error.message === ERROR_MSGS.STACK_OVERFLOW);
27
+ }
28
+ exports.isStackOverflowExeption = isStackOverflowExeption;
29
+ var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {
30
+ try {
31
+ return fn();
32
+ }
33
+ catch (error) {
34
+ if (isStackOverflowExeption(error)) {
35
+ error = errorCallback();
36
+ }
37
+ throw error;
38
+ }
39
+ };
40
+ exports.tryAndThrowErrorIfStackOverflow = tryAndThrowErrorIfStackOverflow;
@@ -0,0 +1,5 @@
1
+ export declare enum FactoryType {
2
+ DynamicValue = "toDynamicValue",
3
+ Factory = "toFactory",
4
+ Provider = "toProvider"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FactoryType = void 0;
4
+ var FactoryType;
5
+ (function (FactoryType) {
6
+ FactoryType["DynamicValue"] = "toDynamicValue";
7
+ FactoryType["Factory"] = "toFactory";
8
+ FactoryType["Provider"] = "toProvider";
9
+ })(FactoryType = exports.FactoryType || (exports.FactoryType = {}));
package/lib/utils/id.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare function id(): number;
2
- export { id };
1
+ declare function id(): number;
2
+ export { id };
package/lib/utils/id.js CHANGED
@@ -1,9 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.id = void 0;
4
- var idCounter = 0;
5
- function id() {
6
- return idCounter++;
7
- }
8
- exports.id = id;
9
- //# sourceMappingURL=id.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.id = void 0;
4
+ var idCounter = 0;
5
+ function id() {
6
+ return idCounter++;
7
+ }
8
+ exports.id = id;
@@ -0,0 +1 @@
1
+ export declare function getFirstArrayDuplicate<T>(array: T[]): T | undefined;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFirstArrayDuplicate = void 0;
4
+ function getFirstArrayDuplicate(array) {
5
+ var seenValues = new Set();
6
+ for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
7
+ var entry = array_1[_i];
8
+ if (seenValues.has(entry)) {
9
+ return entry;
10
+ }
11
+ else {
12
+ seenValues.add(entry);
13
+ }
14
+ }
15
+ return undefined;
16
+ }
17
+ exports.getFirstArrayDuplicate = getFirstArrayDuplicate;
@@ -1,7 +1,10 @@
1
- import { interfaces } from "../interfaces/interfaces";
2
- declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier<any>): string;
3
- declare function listRegisteredBindingsForServiceIdentifier(container: interfaces.Container, serviceIdentifier: string, getBindings: <T>(container: interfaces.Container, serviceIdentifier: interfaces.ServiceIdentifier<T>) => interfaces.Binding<T>[]): string;
4
- declare function circularDependencyToException(request: interfaces.Request): void;
5
- declare function listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string;
6
- declare function getFunctionName(v: any): string;
7
- export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException };
1
+ import { interfaces } from '../interfaces/interfaces';
2
+ declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier): string;
3
+ declare function listRegisteredBindingsForServiceIdentifier(container: interfaces.Container, serviceIdentifier: string, getBindings: <T>(container: interfaces.Container, serviceIdentifier: interfaces.ServiceIdentifier<T>) => interfaces.Binding<T>[]): string;
4
+ declare function circularDependencyToException(request: interfaces.Request): void;
5
+ declare function listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string;
6
+ declare function getFunctionName(func: {
7
+ name: string | null;
8
+ }): string;
9
+ declare function getSymbolDescription(symbol: Symbol): string;
10
+ export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException, getSymbolDescription };
@@ -1,105 +1,127 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.circularDependencyToException = exports.listMetadataForTarget = exports.listRegisteredBindingsForServiceIdentifier = exports.getServiceIdentifierAsString = exports.getFunctionName = void 0;
4
- var ERROR_MSGS = require("../constants/error_msgs");
5
- function getServiceIdentifierAsString(serviceIdentifier) {
6
- if (typeof serviceIdentifier === "function") {
7
- var _serviceIdentifier = serviceIdentifier;
8
- return _serviceIdentifier.name;
9
- }
10
- else if (typeof serviceIdentifier === "symbol") {
11
- return serviceIdentifier.toString();
12
- }
13
- else {
14
- var _serviceIdentifier = serviceIdentifier;
15
- return _serviceIdentifier;
16
- }
17
- }
18
- exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
19
- function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
20
- var registeredBindingsList = "";
21
- var registeredBindings = getBindings(container, serviceIdentifier);
22
- if (registeredBindings.length !== 0) {
23
- registeredBindingsList = "\nRegistered bindings:";
24
- registeredBindings.forEach(function (binding) {
25
- var name = "Object";
26
- if (binding.implementationType !== null) {
27
- name = getFunctionName(binding.implementationType);
28
- }
29
- registeredBindingsList = registeredBindingsList + "\n " + name;
30
- if (binding.constraint.metaData) {
31
- registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
32
- }
33
- });
34
- }
35
- return registeredBindingsList;
36
- }
37
- exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
38
- function alreadyDependencyChain(request, serviceIdentifier) {
39
- if (request.parentRequest === null) {
40
- return false;
41
- }
42
- else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
43
- return true;
44
- }
45
- else {
46
- return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
47
- }
48
- }
49
- function dependencyChainToString(request) {
50
- function _createStringArr(req, result) {
51
- if (result === void 0) { result = []; }
52
- var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
53
- result.push(serviceIdentifier);
54
- if (req.parentRequest !== null) {
55
- return _createStringArr(req.parentRequest, result);
56
- }
57
- return result;
58
- }
59
- var stringArr = _createStringArr(request);
60
- return stringArr.reverse().join(" --> ");
61
- }
62
- function circularDependencyToException(request) {
63
- request.childRequests.forEach(function (childRequest) {
64
- if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
65
- var services = dependencyChainToString(childRequest);
66
- throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
67
- }
68
- else {
69
- circularDependencyToException(childRequest);
70
- }
71
- });
72
- }
73
- exports.circularDependencyToException = circularDependencyToException;
74
- function listMetadataForTarget(serviceIdentifierString, target) {
75
- if (target.isTagged() || target.isNamed()) {
76
- var m_1 = "";
77
- var namedTag = target.getNamedTag();
78
- var otherTags = target.getCustomTags();
79
- if (namedTag !== null) {
80
- m_1 += namedTag.toString() + "\n";
81
- }
82
- if (otherTags !== null) {
83
- otherTags.forEach(function (tag) {
84
- m_1 += tag.toString() + "\n";
85
- });
86
- }
87
- return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
88
- }
89
- else {
90
- return " " + serviceIdentifierString;
91
- }
92
- }
93
- exports.listMetadataForTarget = listMetadataForTarget;
94
- function getFunctionName(v) {
95
- if (v.name) {
96
- return v.name;
97
- }
98
- else {
99
- var name_1 = v.toString();
100
- var match = name_1.match(/^function\s*([^\s(]+)/);
101
- return match ? match[1] : "Anonymous function: " + name_1;
102
- }
103
- }
104
- exports.getFunctionName = getFunctionName;
105
- //# sourceMappingURL=serialization.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.getSymbolDescription = exports.circularDependencyToException = exports.listMetadataForTarget = exports.listRegisteredBindingsForServiceIdentifier = exports.getServiceIdentifierAsString = exports.getFunctionName = void 0;
23
+ var ERROR_MSGS = __importStar(require("../constants/error_msgs"));
24
+ function getServiceIdentifierAsString(serviceIdentifier) {
25
+ if (typeof serviceIdentifier === 'function') {
26
+ var _serviceIdentifier = serviceIdentifier;
27
+ return _serviceIdentifier.name;
28
+ }
29
+ else if (typeof serviceIdentifier === 'symbol') {
30
+ return serviceIdentifier.toString();
31
+ }
32
+ else {
33
+ var _serviceIdentifier = serviceIdentifier;
34
+ return _serviceIdentifier;
35
+ }
36
+ }
37
+ exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
38
+ function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
39
+ var registeredBindingsList = '';
40
+ var registeredBindings = getBindings(container, serviceIdentifier);
41
+ if (registeredBindings.length !== 0) {
42
+ registeredBindingsList = '\nRegistered bindings:';
43
+ registeredBindings.forEach(function (binding) {
44
+ var name = 'Object';
45
+ if (binding.implementationType !== null) {
46
+ name = getFunctionName(binding.implementationType);
47
+ }
48
+ registeredBindingsList = registeredBindingsList + "\n " + name;
49
+ if (binding.constraint.metaData) {
50
+ registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
51
+ }
52
+ });
53
+ }
54
+ return registeredBindingsList;
55
+ }
56
+ exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
57
+ function alreadyDependencyChain(request, serviceIdentifier) {
58
+ if (request.parentRequest === null) {
59
+ return false;
60
+ }
61
+ else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
62
+ return true;
63
+ }
64
+ else {
65
+ return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
66
+ }
67
+ }
68
+ function dependencyChainToString(request) {
69
+ function _createStringArr(req, result) {
70
+ if (result === void 0) { result = []; }
71
+ var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
72
+ result.push(serviceIdentifier);
73
+ if (req.parentRequest !== null) {
74
+ return _createStringArr(req.parentRequest, result);
75
+ }
76
+ return result;
77
+ }
78
+ var stringArr = _createStringArr(request);
79
+ return stringArr.reverse().join(' --> ');
80
+ }
81
+ function circularDependencyToException(request) {
82
+ request.childRequests.forEach(function (childRequest) {
83
+ if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
84
+ var services = dependencyChainToString(childRequest);
85
+ throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
86
+ }
87
+ else {
88
+ circularDependencyToException(childRequest);
89
+ }
90
+ });
91
+ }
92
+ exports.circularDependencyToException = circularDependencyToException;
93
+ function listMetadataForTarget(serviceIdentifierString, target) {
94
+ if (target.isTagged() || target.isNamed()) {
95
+ var m_1 = '';
96
+ var namedTag = target.getNamedTag();
97
+ var otherTags = target.getCustomTags();
98
+ if (namedTag !== null) {
99
+ m_1 += namedTag.toString() + '\n';
100
+ }
101
+ if (otherTags !== null) {
102
+ otherTags.forEach(function (tag) {
103
+ m_1 += tag.toString() + '\n';
104
+ });
105
+ }
106
+ return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
107
+ }
108
+ else {
109
+ return " " + serviceIdentifierString;
110
+ }
111
+ }
112
+ exports.listMetadataForTarget = listMetadataForTarget;
113
+ function getFunctionName(func) {
114
+ if (func.name) {
115
+ return func.name;
116
+ }
117
+ else {
118
+ var name_1 = func.toString();
119
+ var match = name_1.match(/^function\s*([^\s(]+)/);
120
+ return match ? match[1] : "Anonymous function: " + name_1;
121
+ }
122
+ }
123
+ exports.getFunctionName = getFunctionName;
124
+ function getSymbolDescription(symbol) {
125
+ return symbol.toString().slice(7, -1);
126
+ }
127
+ exports.getSymbolDescription = getSymbolDescription;